用Dockerfile做tengine的image练手,卡在run的时候无法启动tengine。求大神指点。


先贴上Dockerfile,zx_base:latest这个image是FROM,用阿里云的sources.list;安装了wget
FROM zx_base:latest
MAINTAINER Michael.Z "mail@zhangxiao.org"

ENV DEBIAN_FRONTEND noninteractive

RUN apt-get install -y gcc libssl-dev libpcre3-dev make

RUN adduser --disabled-login --gecos 'Tengine' nginx 

WORKDIR /home/nginx

RUN wget http://tengine.taobao.org/download/tengine-2.1.1.tar.gz
RUN tar zxvf tengine-2.1.1.tar.gz
RUN rm tengine-2.1.1.tar.gz

WORKDIR /home/nginx/tengine-2.1.1

RUN ./configure
RUN make
RUN make install
RUN echo "daemon off;" >> /usr/local/nginx/nginx.conf
RUN apt-get clean && \
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /home/nginx/*

WORKDIR /usr/local/nginx/sbin/
CMD 

EXPOSE 80
EXPOSE 443

用这个Dockerfile生成了一个叫zx_tnginx的image,然后run
docker run -t -d -p 8080:80 --name=nghost  zx_tnginx /bin/bash

然后容器是起来了。但是nginx服务没起来。我去我用exec执行
/usr/local/nginx/sbin/然后就能访问了。
估计关键问题CMD上面,这个是要怎么解决呢?
已邀请:

michaelzx - docker初学者

赞同来自:


> docker run -t -d -p 8080:80 --name=nghost zx_tnginx /bin/bash

是这里的/bin/bash把CMD给覆盖了嘛?
找了下资料,好像是这么回事儿。那我去掉了试了下。
容器启动了就关闭了……如何让他一直保持运行,提供web服务呢?

michaelzx - docker初学者

赞同来自:


去掉了run中的/bin/bash/,然后CMD改成
这样就解决了。。。。有大神告诉我原理吗?

要回复问题请先登录注册