我有一个类似于这个的Dockerfile
:
FROM tomcat:7-jre8-alpine
...
ENTRYPOINT ["sh", "docker-entrypoint.sh"]
我希望在完成所有测试和开发后能够在生产中使用它。在开发过程中,我想使用 JRebel 并激活调试,最好不要更改 Dockerfile 或需要一个额外的文件。 To use JRebel不幸的是,jrebel.jar
需要成为容器/图像的一部分,并且 JAVA_OPTS
需要增强:
"-javaagent:/jrebel.jar -Drebel.remoting_plugin=true"
还必须启用 tomcat 调试:
"-agentlib:jdwp=transport=dt_socket, address=1043, server=y, suspend=n"
是否可以有一个 Dockerfile
然后通过运行选项或类似的东西启用我需要的开发选项?拥有可用于在开发期间运行容器的“高效”docker 镜像的可行选择是什么?
最佳答案
then via run options or something like that enable the development options I need?
作为一个可能的“运行选项”,您可以使用您在 docker run
command 上定义的环境变量(或 docker-compose
'environment
' directive )。
docker run -e "env=dev" ...
然后你可以让你的图像使用一个脚本来适应 JAVA_OPTS
或 tomcat 选项,这取决于 $ENV
。
如果 $ENV
未定义,或已定义但不等于“dev
”,则您不会激活调试选项。
关于tomcat - 用于开发和生产的 Docker,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39389070/