Я развернул приложение PHP + postgreqsl (TinyTiny RSS, https://github.com/dittos/ttrss-mirror) в новом Openshift v3. При первоначальном доступе вы создаете config.php
из доступного шаблона, который содержит пароли БД и т. Д., Чтобы позволить tt-rss подключаться к базе данных. Теперь мне нужно добавить этот файл в корневой каталог приложения (/ opt / app-root / src /), где его ожидает tt-rss.
Следуя явно каноническому пути, я создал configmap с ключом config.php
и содержимым файла в качестве значения. Однако при монтировании этого файла конфигурации в том, чтобы сделать его доступным для приложения, я столкнулся с проблемами, поскольку, очевидно, ожидалось, что точка монтирования тома не является существующий каталог, поэтому, когда я указал целевой путь / opt / app-root / src /, код моего приложения был перезаписан.
Затем я нашел способ предоставить один файл в уже заполненном каталоге:
вам необходимо указать абсолютный путь, включая имя файла в mountPath и имя файла снова в subPath. Имя файла (очевидно) должно соответствовать ключу в вашей карте конфигурации.
Я сделал это, но это приводит к недоступному (без разрешений) config.php
файлу с очень странными свойствами, см. Отрывок из ls -la
в развернутом модуле:
drwxrwxr-x. 8 default root 4096 Sep 29 13:41 classes
-?????????? ? ? ? ? ? config.php
-rw-rw-r--. 1 default root 8057 Sep 29 13:41 config.php-dist
config.php-dist
- это шаблон. Что случилось с вопросительными знаками ?? Эта функция не работает в Openshift?
Связанные части YAML выглядят так:
volumeMounts:
- mountPath: /opt/app-root/src/config.php
name: volume-2k03m
subPath: config.php
а также
volumes:
- configMap:
defaultMode: 420
items:
- key: config.php
path: config.php
name: tt-rss-config
name: volume-2k03m
Есть ли способ исправить эту конфигурацию? Есть ли другой способ «внедрить» (за неимением лучшего слова) этот config.php
в приложение?
Некоторые люди рекомендуют символические ссылки, но я не знаю, как программно создать символическую ссылку в нужном месте, не сталкиваясь с теми же проблемами, что и с самим config.php
.
Я не хочу помещать его в (общедоступное) исходное репо, поскольку оно содержит секреты, а исходное репо на самом деле является исходным репо, которое я бы предпочел не разветвлять и постоянно обновлять сам.