创建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回答

麦兜搞IT

2019-04-21

您的django app在哪里呢?

0
1
Louis0o
这个问题过了过了 请看我提问的最新问题
2019-04-21
共1条回复

麦兜搞IT

2019-04-21

您可以参考下这个flask的  https://github.com/xiaopeng163/docker-compose-flask

0
0

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 这样的一键部署。

求教。

0
0

系统学习Docker 践行DevOps理念

无论你是开发、测试还是运维,Docker都是你的必备技能。

3297 学习 · 1895 问题

查看课程