为什么我的 docker 容器不工作
why is my docker container not working
我试图在 docker 容器中启动 Web 应用程序
这是我的docker文件
FROM centos:6
EXPOSE 9980
RUN yum install -y wget
RUN wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u60-b27/jdk-8u60-linux-x64.rpm"
RUN yum localinstall -y jdk-8u60-linux-x64.rpm
RUN mkdir /usr/local/apps
WORKDIR /usr/local/apps
COPY ac-gui ac-gui/
RUN mv /etc/localtime /etc/localtime.bak
RUN ln -s /usr/share/zoneinfo/America/Chicago /etc/localtime
RUN chmod 775 ac-gui/start.sh ac-gui/stop.sh
ENTRYPOINT ["ac-gui/start.sh"]
start.sh
#!/bin/sh
export APP_HOME=/usr/local/apps/ac-gui
export JAVA_HOME=/usr/java/jdk1.8.0_60
export PATH=$JAVA_HOME/bin:$PATH
export PID_FILE=$APP_HOME/ac-gui.pid
cd $APP_HOME
$JAVA_HOME/bin/java -server -jar ac-gui.war --spring.config.name=ac-gui >> ac-gui.log 2>&1 &
echo "$!" > "$PID_FILE"
如果我运行
docker run -i -t -p 9980:9980 ac-gui bash
和运行 ac-gui/start.sh 在容器内,对我来说很好用。
但如果我只是 运行 容器作为
docker run -d -p 9980:9980 ac-gui
容器将退出 (0)。
我做错了什么吗?
我刚刚从
所以只需删除我 start.sh 中的 & 即可解决问题
我试图在 docker 容器中启动 Web 应用程序
这是我的docker文件
FROM centos:6
EXPOSE 9980
RUN yum install -y wget
RUN wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u60-b27/jdk-8u60-linux-x64.rpm"
RUN yum localinstall -y jdk-8u60-linux-x64.rpm
RUN mkdir /usr/local/apps
WORKDIR /usr/local/apps
COPY ac-gui ac-gui/
RUN mv /etc/localtime /etc/localtime.bak
RUN ln -s /usr/share/zoneinfo/America/Chicago /etc/localtime
RUN chmod 775 ac-gui/start.sh ac-gui/stop.sh
ENTRYPOINT ["ac-gui/start.sh"]
start.sh
#!/bin/sh
export APP_HOME=/usr/local/apps/ac-gui
export JAVA_HOME=/usr/java/jdk1.8.0_60
export PATH=$JAVA_HOME/bin:$PATH
export PID_FILE=$APP_HOME/ac-gui.pid
cd $APP_HOME
$JAVA_HOME/bin/java -server -jar ac-gui.war --spring.config.name=ac-gui >> ac-gui.log 2>&1 &
echo "$!" > "$PID_FILE"
如果我运行
docker run -i -t -p 9980:9980 ac-gui bash
和运行 ac-gui/start.sh 在容器内,对我来说很好用。
但如果我只是 运行 容器作为
docker run -d -p 9980:9980 ac-gui
容器将退出 (0)。
我做错了什么吗?
我刚刚从
所以只需删除我 start.sh 中的 & 即可解决问题