【发布时间】:2018-01-04 09:46:05
【问题描述】:
我已经使用 openjdk 构建了我的 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
登录后,我必须运行此命令...
sh bin/startup.sh
我的问题:是否可以将启动命令添加到 dockerfile?我尝试在我的 dockerfile 中添加这一行。
CMD ["sh", "bin/startup.sh"]
但是构建镜像后,我无法使用-d参数启动容器。
【问题讨论】:
-
“我不能使用-d参数启动容器”:为什么?也许您的启动脚本退出得太早了。命令退出时容器停止。
-
如何保持命令运行?换句话说,我不希望容器在启动 tomcat 服务后退出。 shell 脚本在没有 docker 的情况下也能正常工作。
-
如果是tomcat,你开始使用
CMD ["bin/catalina.sh", "run"] -
手动运行脚本时,是否会在后台运行tomcat并返回bash shell?
-
TarunLalwani 是的,确实如此。 @Henry 是的,将您的 CMD 添加到 dockerfile 有效。我没有修改 startup.sh 文件。所以我想跳过它是可以的。对吗?
标签: docker dockerfile