将启动脚本添加到 dockerfile

sha*_*nuo 13 docker dockerfile

我已经使用 openjdk 构建了我的 docker 镜像。

# config Dockerfile
FROM openjdk:8
COPY . /usr/src/myapp
WORKDIR /usr/src/myapp

# build image
docker build -t shantanuo/dbt .
Run Code Online (Sandbox Code Playgroud)

它使用此命令按预期工作...

docker run -p 8081:8080  -it shantanuo/dbt
Run Code Online (Sandbox Code Playgroud)

登录后,我必须运行此命令...

sh bin/startup.sh
Run Code Online (Sandbox Code Playgroud)

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

CMD ["sh", "bin/startup.sh"]
Run Code Online (Sandbox Code Playgroud)

但是在构建映像后,我无法使用 -d 参数来启动容器。

Ayu*_*hya 11

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

ENTRYPOINT "bin/startup.sh && catalina.sh run"
Run Code Online (Sandbox Code Playgroud)

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