Возможно ли для нескольких Docker Swarm Services доступ к env_file, который находится на томе монтирования? - PullRequest
0 голосов
/ 19 февраля 2020

Я пытаюсь использовать один env_file в нескольких Docker Swarm Services. Точка монтирования тома и файл доступны в контейнере. Я подтвердил это, войдя в работающий контейнер. Как только я внедряю файл .yml стека, я получаю сообщение об ошибке, что файл .env не может быть найден.

Это то, что я сделал:

Сначала добавили том в служба в любом данном стеке.

volumes:
 - /environment:/environment

Затем включите директиву файла .env

env_file:
  - /environment/.env

Можно ли вообще использовать файл env_file, расположенный на монтировании тома? Возможно, стоит отметить, что монтирование тома разрешается на том NFS на хосте и что я использую Swarmpit. Однако, похоже, что развертывание стека в командной строке приводит к той же проблеме.

1 Ответ

0 голосов
/ 19 февраля 2020

Опция env_file указывает на файл на сервере развертывания, не обязательно на узел, на котором выполняются контейнеры, и не на файл внутри контейнера. Я считаю, что содержимое расширяется клиентом docker, преобразуется в записи среды в определении контейнера, и вы увидите, что контейнер работает с результатом.

Из-за этого файл не нужен для монтирования в качестве тома.

Однако необходимо, чтобы файл существовал там, где вы запускаете клиент docker (docker - это клиент-серверное приложение, часто взаимодействующее через docker разъем). С Swarmpit этот клиент, скорее всего, находится внутри контейнера, где ваши файлы на хосте не будут видны и не могут быть расширены.

...