Dockerfile和supervisor部署项目配置文件模板

 Dockerfile模板

FROM python:latest

WORKDIR /root/

RUN mkdir /etc/supervisor # 创建存放supervisor配置文件的文件夹
RUN mkdir -p /root/projects/logs/gunicorn/ # 创建gunicorn日志文件夹 要和supervisor中gunicorn日志文件路径一致
RUN mkdir -p /root/projects/logs/celery/ # 创建celery日志文件夹 要和supervisor中celery日志文件路径一致
ADD sy.ini /etc/supervisor/sy.ini # 复制本地的supervisor配置文件到镜像内

# 根据具体项目名称替换Sy_EvaluateJkApi
ADD Sy_EvaluateJkApi /root/projects/Sy_EvaluateJkApi # 复制代码到镜像内
RUN pip3 install -r /root/projects/Sy_EvaluateJkApi/requirements.txt -i https://mirrors.aliyun.com/pypi/simple/ #安装python相关包
RUN mkdir -p /root/projects/Sy_EvaluateJkApi/logs/ # 创建项目日志文件夹


RUN pip install supervisor -i https://mirrors.aliyun.com/pypi/simple/
RUN pip install gunicorn -i https://mirrors.aliyun.com/pypi/simple/
RUN pip install gevent -i https://mirrors.aliyun.com/pypi/simple/
RUN pip install eventlet-i https://mirrors.aliyun.com/pypi/simple/
RUN /usr/local/bin/echo_supervisord_conf > /etc/supervisor/supervisord.conf
RUN echo "[include]">>/etc/supervisor/supervisord.conf
RUN echo "files = /etc/supervisor/*.ini">>/etc/supervisor/supervisord.conf

EXPOSE 8800 # 容器暴露的端口与sy.ini内启动项目的端口必须一致
CMD ["supervisord","-n","-c","/etc/supervisor/supervisord.conf"]

supervisor配置文件文件模板

[group:sy_group]
programs=sy,celery_work,celery_beat
priority=5


[program:sy]
command=gunicorn --limit-request-line 8188  -w 1 -k gevent -b 0.0.0.0:8800 EvaluateJK.wsgi -e DJANGO_SETTINGS_MODULE=EvaluateJK.settings.dev
directory=/root/projects/Sy_EvaluateJkApi                ; directory to cwd to before exec (def no cwd)
priority=5                  ; the relative start priority (default 999)
autostart=true                ; start at supervisord start (default: true)
startsecs=15                   ; # of secs prog must stay up to be running (def. 1)
startretries=3                ; max # of serial start failures when starting (default 3)
autorestart=true        ; when to restart if exited after running (def: unexpected)
stopsignal=QUIT               ; signal used to kill process (default TERM)
stopwaitsecs=0               ; max num secs to wait b4 SIGKILL (default 10)
user=root                   ; setuid to this UNIX account to run the program
stdout_logfile=/root/projects/logs/gunicorn/sy_success.log        ; stdout log path, NONE for none; default AUTO
stderr_logfile=/root/projects/logs/gunicorn/sy_error.err        ; stderr log path, NONE for none; default AUTO

[program:celery_work]
command=celery -A EvaluateJK worker -l info -P eventlet --logfile=/root/projects/logs/celery/celery_worker.log
directory=/root/projects/Sy_EvaluateJkApi
priority=5                  ; the relative start priority (default 999)
startsecs=15                   ; # of secs prog must stay up to be running (def. 1)
startretries=3                ; max # of serial start failures when starting (default 3)
autorestart=true        ; when to restart if exited after running (def: unexpected)
stopsignal=QUIT               ; signal used to kill process (default TERM)
stopwaitsecs=0               ; max num secs to wait b4 SIGKILL (default 10)
user=root                   ; setuid to this UNIX account to run the program
stdout_logfile=/root/projects/logs/celery/celery.log
stderr_logfile=/root/projects/logs/celery/celery.err

[program:celery_beat]
command=celery -A EvaluateJK beat -l info --logfile=/root/projects/logs/celery/celery_beat.log
directory=/root/projects/Sy_EvaluateJkApi
priority=5                  ; the relative start priority (default 999)
startsecs=15                   ; # of secs prog must stay up to be running (def. 1)
startretries=3                ; max # of serial start failures when starting (default 3)
autorestart=true        ; when to restart if exited after running (def: unexpected)
stopsignal=QUIT               ; signal used to kill process (default TERM)
stopwaitsecs=0               ; max num secs to wait b4 SIGKILL (default 10)
user=root                   ; setuid to this UNIX account to run the program
stdout_logfile=/root/projects/logs/celery/celery_beat.log
stderr_logfile=/root/projects/logs/celery/celery_beat.err

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在CentOS上部署.NET Core项目的两种常见方式是使用 nohup 和 supervisor。 1. 使用 nohup nohup 是一个命令,可以在后台运行一个命令,不受终端退出的影响。使用 nohup 部署.NET Core项目,可以在后台运行程序,并且在服务器重启后自动启动。 使用 nohup 部署.NET Core项目的步骤如下: 1. 在服务器上安装.NET Core运行时和SDK。 2. 在服务器上创建一个目录,将编译好的.NET Core项目拷贝到该目录下。 3. 使用 nohup 命令运行.NET Core程序,例如: ``` nohup dotnet /path/to/your/project.dll & ``` 4. 程序将在后台运行,并且不受终端退出的影响。 2. 使用 supervisor supervisor 是一个进程管理工具,可以在后台管理进程,并且在服务器重启后自动启动。使用 supervisor 部署.NET Core项目,可以更方便地管理和监控程序。 使用 supervisor 部署.NET Core项目的步骤如下: 1. 在服务器上安装.NET Core运行时和SDK。 2. 在服务器上安装 supervisor,例如: ``` sudo yum install supervisor ``` 3. 创建一个 supervisor 配置文件,例如: ``` sudo nano /etc/supervisord.d/myproject.ini ``` 在文件中添加以下内容: ``` [program:myproject] command=/usr/bin/dotnet /path/to/your/project.dll directory=/path/to/your/project autostart=true autorestart=true stderr_logfile=/var/log/myproject.err.log stdout_logfile=/var/log/myproject.out.log ``` 4. 重新加载 supervisor 配置文件,例如: ``` sudo supervisorctl reread sudo supervisorctl update ``` 5. 启动.NET Core程序,例如: ``` sudo supervisorctl start myproject ``` 6. 程序将在后台运行,并且由 supervisor 管理。可以使用 supervisorctl 命令来管理程序,例如: ``` sudo supervisorctl stop myproject sudo supervisorctl start myproject sudo supervisorctl restart myproject sudo supervisorctl status myproject ``` 以上是使用 nohup 和 supervisor 两种方式在 CentOS 上部署.NET Core项目的方法。使用 supervisor 可以更方便地管理程序,但需要安装额外的工具。使用 nohup 可以更简单地启动程序,但需要手动管理进程。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值