创建image中CMD如何写可以让container启动后持续运行?
来源:6-3 Docker Compose的安装和基本使用
Louis0o
2019-04-21
FROM centos:latest
# part 1
# LABAL
# ENV
COPY . /var/www/demo
WORKDIR /var/www/demo
# part 2 install dependency of httpd and python
RUN yum upgrade -y
RUN yum install -y httpd httpd-devel
RUN yum install -y mod_wsgi
RUN yum install -y epel-release
RUN yum install -y python-pip
RUN yum clean all
RUN pip --version
RUN pip install --upgrade pip
RUN pip install -r requirements.txt
# part 3 modify settings in httpd.conf
WORKDIR /etc/httpd/conf
RUN sed -i '/^DocumentRoot/c DocumentRoot "/var/www/demo"' httpd.conf
RUN sed -i '/^# Further relax access to the/{n;s/html/demo/;}' httpd.conf
RUN sed -i '$a ServerName localhost:80' httpd.conf
RUN sed -i '$a WSGIScriptAlias / /var/www/demo/demo/wsgi.py' httpd.conf
RUN sed -i '$a Alias /static /var/www/demo275/static' httpd.conf
RUN sed -i '$a Alias /media /var/www/demo275/media' httpd.conf
# more settings should be set.
EXPOSE 80
CMD ["httpd"]
老师,我在将自己的django APP通过docker-compose up -d部署的时候。这个django APP对应的service总是起来一下就立马退出了。
经过一番测试和研究,我觉得应该是Dockerfile中的CMD没有写好,或者是docker-compose.yml文件中的command: xx 没有指定好。
那么,我应该怎样去修改,才能使得docker-compose up -d后,django APP对应的service就一直运行呢? 是改Dockerfile好,还是改docker-compose.yml文件好呢?
写回答
3回答
-
您的django app在哪里呢?
012019-04-21 -
麦兜搞IT
2019-04-21
您可以参考下这个flask的 https://github.com/xiaopeng163/docker-compose-flask
00 -
Louis0o
提问者
2019-04-21
这个Dockerfile是说在centos上安装httpd服务,然后运行django APP.
就上面的Dockrfile build好image之后,运行 docker run -d -p 80:80 imagename, container直接退出了。
运行docker run -it -p 80:80 imagename /bin/bash 这有需要手动起httpd服务,更实现不了docker-compose uo -d 这样的一键部署。
求教。
00
相似问题