我正在使用 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
这意味着 docker 改进在 java 级别不可见,似乎变量$profiles没有被其值替换。将 java 级别与前面的示例进行比较 - 值已更改,但期望值必须相同。
有什么解决办法吗?
聚苯乙烯
如果我在Dockerfile水平上做类似的事情 - 它有效:
ENV profiles=docker-test
ENTRYPOINT java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -Dspring.profiles.active=$profiles -jar /app.jar
慕哥6287543
相关分类