Как мне использовать переменные окружения на Entrypoint в Docker? - PullRequest
0 голосов
/ 04 декабря 2018
ENV ADDRESS=http://peer1:8761/eureka/,http://peer2:8762/eureka/
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom", "-jar","/app.jar", "--eureka.client.serviceUrl.defaultZone=$ADDRESS"]

Я хочу указать адрес eureka для точки входа через переменные окружения. Но это все еще $ ADDRESS, когда я использую Docker Run, и я использую ENTRYPOINT java -jar xxxx ,, он может быть заменен правильно, но когда я использую ENTRYPOINT какENTRYPOINT java -jar xxx.jar, и я использую docker run image_name --spring.profiles.active=peer1, конечные параметры active = peer1 не будут действовать, что я должен сделать, чтобы использовать переменные и параметры среды в Entrypoint

1 Ответ

0 голосов
/ 04 декабря 2018

Я только что попытался разрешить PATH в dockerfile, и он работал для одного сценария (хотя я использовал CMD), но не уверен, поможет ли это.Если это не помогло, дайте мне знать более подробно.

Существует две формы для указания команды (форма Exec и форма оболочки) и два способа указать команду по умолчанию (ENTRYPOINT и CMD) в файле Docker.

Форма исполнения:

FROM ubuntu
MAINTAINER xyz<xyz.gmail.com>
ENTRYPOINT ["ping"]

Указанная команда (ping) будет запускаться как PID 1. Именно поэтому мы нажимаем CTRL + C (SIGTERM)передается процессу PID1, а контейнер отключается.

Форма оболочки:

FROM ubuntu
MAINTAINER xyz<xyz.gmail.com>
CMD echo $PATH

При выполнении PATH преобразован в среду оболочки PATH (выход проверен).

форма оболочки определяет токены команд, разделенные пробелами.форма оболочки выполняет команду, вызывая / bin / sh -c (это означает, что PID 1 на самом деле является оболочкой, а команда, указанная в файле Docker, является просто другим процессом) (нажатие CTRL + C не приведет к уничтожению контейнера)

Преимуществоиспользования формы оболочки, так как вы выполняете с / bin / sh -c, мы можем разрешить переменные окружения в команде (в приведенном выше примере мы используем PATH).

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

С уважением, Судхакар

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