dockerfile CMD执行多条命令且需要支持环境变量

问题

现有环境变量

JAVA_OPTS=-Xms125m -Xmx256m -Dspring.profiles.active=test

CMD命令

CMD sleep 30 && java ${JAVA_OPTS} -Djava.security.egd=file:/dev/./urandom -jar xxx.jar

执行后期望

# 延时30s执行后面一个命令,环境变量的占位符能生效
# CMD sleep 30 && java ${JAVA_OPTS} -Djava.security.egd=file:/dev/./urandom -jar xxx.jar
java -Xms125m -Xmx256m -Dspring.profiles.active=test -Djava.security.egd=file:/dev/./urandom -jar xxx.jar

实际结果

# 延时30s执行后面一个命令,环境变量的占位符不能生效
# CMD sleep 30 && java ${JAVA_OPTS} -Djava.security.egd=file:/dev/./urandom -jar xxx.jar
java ${JAVA_OPTS} -Djava.security.egd=file:/dev/./urandom -jar xxx.jar

于是验证了一下单命令的时候环境变量的占位符能否生效,发现是可以的

# CMD java ${JAVA_OPTS} -Djava.security.egd=file:/dev/./urandom -jar xxx.jar
java -Xms125m -Xmx256m -Dspring.profiles.active=test -Djava.security.egd=file:/dev/./urandom -jar xxx.jar

想问问怎么同时支持dockerFile 的 CMD命令既能执行多条又可以兼容环境变量.或者有更好的解决方案.感谢!

阅读 6.7k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题