如何在java应用程序直接从docker入口点开始之前运行脚本?



ENTRYPOINT ["java", "org.springframework.boot.loader.JarLauncher"]

这是我在Dockerfile

中的当前定义问题:是否有可能在此之前简单地执行另一个.sh脚本,而不必编写额外的entrypoint.sh脚本?

伪代码:

ENTRYPOINT ["init.sh", "&&", "java", "org.springframework.boot.loader.JarLauncher"]

代替:ENTRYPOINT[ "wrapper.sh" ]

首先运行脚本的一个简单方法是使用ENTRYPOINT指令的shell版本,而不是您使用的exec版本(有关更多信息,请参阅https://docs.docker.com/engine/reference/builder/#entrypoint)。

运行shell允许您通过使用&&将它们分开来运行多个命令。所以你可以输入

ENTRYPOINT init.sh && java org.springframework.boot.loader.JarLauncher

如果启动容器的过程变得更复杂,您应该像David建议的那样创建一个入口点包装器脚本。

最新更新