我自己寫的一個tomcat
的Dockerfile
文件,docker build
後在執行docker run
,容器直接退出了,tomcat
並沒有開啟打開
FROM debian:lite
LABEL maintainer "jervain@126.com"
#需要jdk-8u121-linux-x64.tar.gz
#需要apache-tomcat-8.0.42.tar.gz
ENV JDK_VERSION 1.8.0_121
ENV TOMCAT_VERSION 8.0.42
ENV CATALINA_HOME /usr/local/tomcat
ENV JAVA_HOME /usr/local/java
ENV SRC_DIR /home/tmp
WORKDIR ${SRC_DIR}
COPY jdk-8u121-linux-x64.tar.gz ${SRC_DIR}
COPY apache-tomcat-8.0.42.tar.gz ${SRC_DIR}
RUN tar -xf jdk-8u121-linux-x64.tar.gz \
&& tar -xf apache-tomcat-8.0.42.tar.gz \
&& mv jdk${JDK_VERSION} ${JAVA_HOME} \
&& mv apache-tomcat-${TOMCAT_VERSION} ${CATALINA_HOME} \
&& export JAVA_HOME="${JAVA_HOME}" \
&& export CLASSPATH=".:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar" \
&& export CATALINA_HOME="${CATALINA_HOME}" \
&& export PATH="$JAVA_HOME/bin:$PATH" \
&& chmod +x ${CATALINA_HOME}/bin/startup.sh \
&& chmod +x ${CATALINA_HOME}/bin/shutdown.sh \
&& rm -rf ./*
ENTRYPOINT [${CATALINA_HOME}"/bin/startup.sh"]
EXPOSE 80 8080
VOLUME [${CATALINA_HOME}"/conf","/var/www/webapps"]
我執行的命令:docker build -t tomcat:8.0.42 .
與docker run -itd tomcat:8.0.42 /bin/bash
執行完成後容器直接退出了,請各位幫我看下Dockerfile什麼問題,不知道是不是因為.sh文件執行完成後就退出了,順便問下Dockerfile
中ENTRYPOINT
有兩種格式sh
與exec
,sh
與exec
的格式具體是怎麼用的,能否舉例
需要有個前台進程 例如隨便 tail -f 一個檔案什麼的
ENTRYPOINT的兩種格式分別為sh和exec
sh:curl -s http://www.baidu.com
exec:["curl","-s","http://www.baidu.com"]