Docker 后台运行多个进程/脚本/web server
2021-03-01 23:29
标签:ram sudo 问题 serve 使用 进程 sgi 信息 重启 首先,并不推荐这样做,一个Docker本身只该运行一个服务 有一次我需要在一个docker容器中运行两个web server。并且需要写在 如果在 使用 使用 我的 文件的内容如下 第一行的 在 我使用的基础镜像 如果是在一般的操作系统中,可以使用 https://blog.csdn.net/asukasmallriver/article/details/73822951 Docker 后台运行多个进程/脚本/web server 标签:ram sudo 问题 serve 使用 进程 sgi 信息 重启 原文地址:https://www.cnblogs.com/TheTai/p/14385636.html
问题
Dockerfile
中,让用户一启动容器,两个web server就都运行。Dockerfile
最后直接加一个RUN webrun.py
的话,只能启动一个。解决
supervisor
安装
sudo apt-get install supervisor
安装。Dockerfile
中使用的基础镜像是tiangolo/uwsgi-nginx-flask:python3.8
已经安装好了。编写
apprun.conf
文件[program:apprun]
command=python webrun.py
autostart=true
autorestart=true
stdout_logfile=/app/app.log
apprun
自己取个名字,表示你的项目就行
第二行的python webrun.py
表示你运行程序的命令
第三行表示自动启动,如果值为false则表示不自动启动
第四行表示自动重启,如果值为false则表示不自动重启
最后一样表示程序打印出的信息都记录在该test.log文件内,是log文件将
conf
文件复制到镜像内Dockerfile
中添加如下命令,COPY ./apprun.conf /etc/supervisor/conf.d
。启动
tiangolo/uwsgi-nginx-flask:python3.8
在容器启动时会自动启动supervisord
。所以,如果使用这个镜像的话,无需其他的特殊操作。sudo supervisord
来启动。参考
https://hub.docker.com/r/tiangolo/uwsgi-nginx-flask
文章标题:Docker 后台运行多个进程/脚本/web server
文章链接:http://soscw.com/index.php/essay/58782.html