dockerfile基于之前的镜像构建了一个性的镜像,原来的镜像的dockerfile中指定的CMD不执行了

发布于 2022-09-07 22:33:32 字数 738 浏览 18 评论 0

1、原来的dockerfile,基于centos:7构建一个安装了jdk的镜像
FROM centos:7

MAINTAINER wenyoulong <3424675994@qq.com>

ENV JAVA_HOME /usr/local/java/jdk1.8.0_181
ENV JRE_HOME ${JAVA_HOME}/jre
ENV CLASSPATH .:${JAVA_HOME}/lib:${JRE_HOME}/lib
ENV PATH ${JAVA_HOME}/bin:$PATH

COPY jdk-8u181-linux-x64.tar.gz /java/jdk-8u181-linux-x64.tar.gz
COPY setup.sh /java/setup.sh

CMD ["sh", "/java/setup.sh"]

2、基于刚刚构建的镜像构建一个安装了tomcat的新镜像
FROM my-java:latest

MAINTAINER wenyoulong <3424675994@qq.com>

COPY apache-tomcat-8.5.33.tar.gz /tomcat/apache-tomcat-8.5.33.tar.gz
COPY setup.sh /tomcat/setup.sh

CMD ["sh", "/tomcat/setup.sh"]

3、构建完成后运行tomcat这个镜像发现之前的那个镜像指定的CMD没有执行

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

黑白记忆 2022-09-14 22:33:32

这是对的,CMDdocker run执行的脚本,是运行状态的配置,所以你FROM之后,自然被你新的CMD配置覆盖掉了

橘寄 2022-09-14 22:33:32

CMD 只能有一个. 你应该用 RUN.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文