Docker запускается с параметром ENV, указывающим на файл в смонтированном каталоге - PullRequest
0 голосов
/ 27 ноября 2018

Я создаю образ докера для веб-приложения.Для запуска приложения требуется файл сертификата.Поскольку этот сертификат специфичен для конкретного разработчика, он не может быть частью образа докера, но должен быть передан ему при запуске контейнера этого образа.

Так что мой план был

  1. Смонтируйте мой каталог хоста, содержащий сертификат, в контейнере с помощью опции --mount
  2. Установите переменную ENV, содержащую путь контейнера к сертификату, который используется приложением

Вот так:

docker run --mount type=bind,source=d:\\secret-data:/secret-data --envPATH_TO_CERT=/secret-data/my-cert thewebapp

Это не работает, веб-приложение выдает исключение, сообщающее, что он не может найти сертификат в папке

c:/Users/myname/AppData/Local/Programs/Git/secret-data/my-cert

, который равен 1) пути Windowsкоторый 2) действительно не существует.

С другой стороны, похоже, что монтирование работает (когда я подключаюсь к докеру через -it sh, я могу убедиться, что существует каталог /secret-data, содержащий сертификат my-cert

1 Ответ

0 голосов
/ 29 ноября 2018

Работает, чтобы уже установить переменную окружения пути хранилища ключей в Dockerfile.В моем случае я добавил его к CATALINA_OPTS следующим образом

ENV CATALINA_OPTS="-D/secret-data/my-cert"

Монтирование выполняется при запуске контейнера, как и раньше.

SiHa правильно заявил, что это не обходной путь, нопредпочтительный способ сделать это; -)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...