Как запустить контейнер Docker, но не скопировать файл паролей для сборки образа, другие варианты? - PullRequest
1 голос
/ 03 июня 2019

Поскольку это связано с работой, я буду делать больше псевдокода, но здесь есть проблема.Я создаю образ для запуска весеннего веб-приложения внутри контейнера с Dockerfile.Это работает хорошо локально, когда я запускаю свой сервер Tomcat из Eclipse, а также внутри контейнера с запуском Docker.Так вот в чем проблема.Когда я создаю свой образ с помощью файла Docker, я создаю папку конфигурации:

RUN mkdir -p /pathToConfig/config

Затем я копирую свой файл паролей в эту папку конфигурации:

COPY ./locationOfPassowrdFile/passwords.properties /pathToConfig/config 

EXPOSE myPort

CMD java -jar -DpropertySource="file:/pathToConfig/config/passwords.properties" ....more launchCode...... WARFILENAME.WAR

Я исследовал секреты, но яЯ не могу соединить точки.Например, мне было интересно, есть ли способ создать секрет с файлом passwords.properties, а затем, когда я запускаю приложение с CMD .... я могу связать его там?Кажется легким, но я не смог объединить эти идеи.Кроме того, я не использую K8 или Swarm, поэтому не уверен, что это проблема.

Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 03 июня 2019

Может быть, я неправильно понимаю вопрос ... но не могли бы вы просто смонтировать файл в контейнер?

Объемы докера

0 голосов
/ 04 июня 2019

Насколько я понимаю, вам нужно передать некоторую секретную конфигурацию в контейнер докера во время выполнения.Вы можете использовать секреты докера (даже если вы не запускаете рой), создав файл составления:

Структура проекта:

 |- Dockerfile
 |- docker-compose.yml
 |- pathToConfig
    |- config
      |- passwords.properties

docker-compose.yml содержимое:

version: "3.6"

services:

  my_service:
    build:
      dockerfile: Dockerfile
      context: .
    entrypoint: 'java -jar -DpropertySource="file:/run/secrets/my_secret" ...'
    secrets:
       - my_secret

secrets:
  my_secret:
    file: /pathToConfig/config/passwords.properties

Запустите следующую команду из корня проекта, чтобы построить образ и запустить контейнер:

docker-compose up --build my_service

Во время выполнения passwords.properties сопоставляется с /run/secrets/my_secret иПриложение сможет прочитать конфигурацию из этого места.Подробнее о настройке секретов здесь

Если это выглядит сложным, у вас есть другие варианты:

Надеюсь, это поможет

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