docker-compose mongo нужны разрешения на чтение для всех - PullRequest
0 голосов
/ 17 октября 2018

Образ mongo имеет эту замечательную опцию монтирования для инициализации базы данных.Вы можете смонтировать ./initdb.d/, и будут выполнены *.js.

Тем не менее, файлы и каталоги моего проекта 600 и 700 соответственно, принадлежат redsandro:redsandro.Изображение mongo не может их прочитать.

Неважно, добавлю ли я группу read + execute (dir) (т. Е. 640 и 750).Только когда я добавлю разрешения на чтение для всех в файле, и разрешения на чтение + выполнение для всех в каталоге (то есть 644 и 755, давайте назовем это "план C" ), монго будетimage выполнить скрипт.

Есть ли способ, которым я могу сохранить свои файлы в секрете на своем компьютере (например, без разрешений для all AKA umask 007) и по-прежнему читать монго image их?

Обновление: Я ищу способ сделать это с помощью опций docker-compose, переменных, окружения и т. д. Не для создания собственного изображения.Например, некоторые изображения с похожими проблемами позволяют мне просто установить user: 1000 (uid для локального пользователя).Это не работает с изображением монго.

1 Ответ

0 голосов
/ 17 октября 2018

Вы можете копировать файлы вместо монтирования каталога.Например, ваш Dockerfile может выглядеть примерно так:

FROM mongo

COPY --chown=mongodb:mongodb /host/path/to/scripts/* /docker-entrypoint-initdb.d/

Это означает, что каждый раз, когда вы меняете сценарии, вам нужно будет перестраивать образ, а не просто заново создавать контейнер.Это крошечный слой поверх базового изображения, поэтому его создание не займет много времени.

...