2016-04-22 46 views
0

開始這裏是我的Dockerfile:nginx的內部沒有泊塢

FROM ubuntu:14.04.4 
ENV DEBIAN_FRONTEND noninteractive 
RUN apt-get update 
RUN apt-get install -y software-properties-common 
RUN add-apt-repository ppa:nginx/stable 

RUN apt-get update 
RUN apt-get upgrade -y 

RUN apt-get install -y nginx 

ADD configurations/nginx.conf /etc/nginx/nginx.conf 

ADD configurations/app.conf /etc/nginx/sites-available/default.conf 
RUN ln -sf /etc/nginx/sites-available/default.conf /etc/nginx/sites-enabled/default.conf 

RUN chown -Rf www-data.www-data /var/www/ 

ADD scripts/start.sh /start.sh 
RUN chmod 755 /start.sh 

EXPOSE 443 
EXPOSE 80 

CMD ["/bin/bash", "/start.sh"] 

的start.sh腳本:

cat scripts/start.sh 

service nginx start 
echo "test" > /tmp/test 

當我登錄到容器:

docker exec --interactive --tty my_container bash 

既不測試文件存在,也不運行nginx。 nginx日誌中沒有錯誤。

+0

這可能是該碼頭工人希望您的應用程序開始運行並且永遠不會像在前臺進程中那樣返回。如果你的啓動腳本返回,那麼Doc​​ker退出。所以試試上面鏈接的解決方案。 – spokeadoke

+0

您可以像使用示例一樣使用官方圖像https://github.com/nginxinc/docker-nginx/blob/19799fa644461ed6c5ea07c0bc0ea0cc277c2d77/mainline/jessie/Dockerfile – ashatrov

+0

當您使用'exec'登錄到您的容器並嘗試運行時會發生什麼?/bin/bash/start.sh'。它會給你在嘗試在入口處運行start.sh時可能發生的確切故障。 – Rahul

回答

-1

嘗試

RUN /etc/init.d/nginx start