nginx没有在Docker中启动

时间:2016-04-22 13:26:45

标签: bash nginx docker dockerfile

这是我的Dockerfile:

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日志中没有错误。

2 个答案:

答案 0 :(得分:0)

最佳做法是在前台运行流程而不是服务。

删除start.sh文件并将CMD更改为:

static Comparer<T> Default {
    get {
        ...
        return new ClassExtendingComparer<T>();
    }
}

您可以更好地阅读官方nginx dockerfile:https://github.com/nginxinc/docker-nginx/blob/master/stable/jessie/Dockerfile

答案 1 :(得分:-1)

尝试

RUN /etc/init.d/nginx start