Я использую docker-compose v3.Наиболее интересная часть конфигурации:
entrypoint:
- java
- -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode -Djava.security.egd=file:/dev/./urandom -Dspring.profiles.active=docker-test -jar /app.jar
, пожалуйста, обратите внимание на -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode -Djava.security.egd=file:/dev/./urandom -Dspring.profiles.active=docker-test -jar /app.jar
- активный профиль - docker-test
.Эта конфигурация работает для меня.Попытка улучшить одно, перемещение значения профиля в отдельную переменную:
environment:
- profiles=docker-test
и обновление параметров java
с улучшением:
- -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode -Djava.security.egd=file:/dev/./urandom -Dspring.profiles.active=$profiles -jar /app.jar
программа завершается неудачно.Проверка журналов:
INFO 1 --- [ main] c.s.n.d.m.d.DiscoveryServiceApplication : No active profile set, falling back to default profiles: default
это означает, что улучшение докера не видно на уровне Java, кажется, переменная $profiles
не была заменена значением ее.Сравнение уровня Java с предыдущим примером - значение изменилось, но ожидание должно быть таким же.
Есть какие-нибудь идеи, как это исправить?
PS
В случае, если я 'Я делаю аналогичные вещи на уровне Dockerfile
- это работает:
ENV profiles=docker-test
ENTRYPOINT java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -Dspring.profiles.active=$profiles -jar /app.jar