Docker запускается с -e не работает. Не удалось передать spring.profiles.active в команде run - PullRequest
0 голосов
/ 10 января 2019

У меня одна проблема с файлом докера. Сборка изображения прошла успешно, но во время работы я получаю сообщение об ошибке, поскольку активный профиль, который я задаю в команде запуска, не отражает.

# Get java
FROM openjdk:8-jdk-alpine


VOLUME /tmp
ARG JAR
COPY ${JAR} app.jar

EXPOSE 8080
ENV severn_js_key=1234qasw

ENTRYPOINT ["java", "-jar", "app.jar"]

Моя команда запуска похожа на

sudo docker run -e SPRING_PROFILES_ACTIVE=dev  -p 8088:80  -t tws-apps/service:1.0.0-SNAPSHOT

Я получаю исключение нулевого указателя в журнале сервера при выполнении этого оператора

String environment = System.getProperty("spring.profiles.active");
switch (environment) {

Пожалуйста, помогите

1 Ответ

0 голосов
/ 11 января 2019

Вы передаете SPRING_PROFILES_ACTIVE в контейнер докера как системную переменную среды. Вместо этого вы должны передать его как Системное свойство Java . Решением было бы запустить контейнер, переопределив точку входа:

docker run --entrypoint java -t tws-apps/service:1.0.0-SNAPSHOT -Dspring.profiles.active=dev -jar app.jar

В качестве альтернативы, в вашем Dockerfile измените точку входа. Это может быть скрипт, который читает переменную окружения SPRING_PROFILES_ACTIVE, а затем запускает Java с системным свойством var.

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

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