老师,请问一下dockerfile的CMD命令没有生效问题
来源:3-11 Dockerfile实战(2)
慕工程8205120
2020-12-23
FROM centos:7
MAINTAINER chen@qq.com
COPY start.sh /root/
COPY CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo
RUN yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel wget
RUN wget 'http://nginx.org/download/nginx-1.12.2.tar.gz'
RUN tar -zxvf nginx-1.12.2.tar.gz
RUN cd nginx-1.12.2 && ./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-stream --with-stream_ssl_module && make && make install
COPY jdk1.8.0_131.tar.gz /usr/local/
COPY apache-tomcat-8.5.55.tar.gz /usr/local/
RUN tar -zxvf /usr/local/jdk1.8.0_131.tar.gz -C /usr/local/
RUN tar -zxvf /usr/local/apache-tomcat-8.5.55.tar.gz -C /usr/local/
RUN echo 'export JAVA_HOME=/usr/local/jdk1.8.0_131/' >>/etc/profile
RUN echo 'export PATH=$PATH:$JAVA_HOME/bin' >>/etc/profile
RUN echo 'export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$CLASSPATH' >>/etc/profile && source /etc/profile
RUN chmod +x /root/start.sh
CMD ["sh","-c","/root/start.sh"]
我想构建一个容器里面运行nginx和tomcat,用的start.sh启动他们,但是dockerfile中的source /etc/profile和CMD [“sh”,"-c","/root/start.sh"]都没有生效。当我进入镜像后执行start.sh和source /etc/profile。都是可以正常启动运行。我换了好几种办法都不可以。请问老师一下,这是怎么回事?谢谢!
写回答
1回答
-
您可以参考下我这个https://github.com/xiaopeng163/docker-compose-flask/blob/master/web/Dockerfile 你这样执行shell脚本,执行完就退出了
012020-12-30
相似问题
端口映射问题
回答 2
浏览器无法访问app.py的那个网址
回答 3