将启动脚本添加到dockerfile

我已经使用openjdk构build了Docker镜像。

# config Dockerfile FROM openjdk:8 COPY . /usr/src/myapp WORKDIR /usr/src/myapp # build image docker build -t shantanuo/dbt . 

它正在按照预期使用这个命令…

 docker run -p 8081:8080 -it shantanuo/dbt 

一旦我login,我必须运行这个命令…

 sh bin/startup.sh 

我的问题:是否有可能将启动命令添加到dockerfile? 我试图在我的dockerfile中添加这一行。

 CMD ["sh", "bin/startup.sh"] 

但是在构build映像之后,我不能使用-d参数来启动容器。

您可以使用入口点来运行启动脚本。 在入口点你可以指定你的自定义脚本,然后运行catlina.sh。 例:

 ENTRYPOINT "bin/startup.sh && catalina.sh run" 

这将运行你的启动脚本,然后启动你的tomcat服务器。 它不会退出容器。

docker集装箱必须有一个专门的任务。 这个任务/启动脚本不会终止是很重要的。 当它完成时,任务完成,docker的一切都完成了。

仅使用JDK启动容器是没有意义的。 你必须把你的应用程序。

我认为这将有助于当你发布你想要做的事情。

Docker引用总是一个很好的地方: https : //docs.docker.com/engine/reference/builder/#entrypoint