文档章节

Docker + gunicron + supervisord 部署python应用

FenG_Vnc
 FenG_Vnc
发布于 2017/01/17 16:11
字数 402
阅读 418
收藏 13

首先要看一下项目的一些基本目录结构

  • requirement.txt (项目的安装包文件)
  • supervisord.conf ( 监控启动文件)
[supervisord]
nodaemon=true
[program:myapp]
command=/usr/local/bin/gunicorn -c /myapp/gun.conf manager:app
directory=/
user=root
autostart=true                ; 随着supervisord的启动而启动
autorestart=true              ; 自动重启。。当然要选上了
startretries=10               ; 启动失败时的最多重试次数
exitcodes=0                 ; 正常退出代码(是说退出代码是这个时就不再重启了吗?待确定)
stopsignal=KILL               ; 用来杀死进程的信号
stopwaitsecs=10               ; 发送SIGKILL前的等待时间
redirect_stderr=true          ; 重定向stderr到stdout
stdout_logfile =/var/log/myapp/server.log
  • gun.conf ( gunicorn启动配置文件)
import os
bind='0.0.0.0:80'
workers=2
backlog=2048
worker_class="egg:meinheld#gunicorn_worker" #sync, gevent,egg:meinheld#gunicorn_worker(don't supports windows)
debug=True
proc_name='gunicorn.pid'
pidfile='/myapp/debug.log'
loglevel='info'
  • Dokerfile (osc的代码生成在dockerfile好像有问题 不能换行,我用在线编辑器复制过来也不行,所以干脆直接换行)

FROM python:2.7
MAINTAINER Feng_v
RUN mkdir /myapp
RUN mkdir -p /var/log/myapp
RUN mkdir -p /etc/supervisor
RUN mkdir -p /etc/supervisor/conf.d/
RUN touch /var/log/myapp/server.log
COPY . /myapp
WORKDIR /myapp
RUN pip install -r requirements.txt
RUN echo_supervisord_conf > /etc/supervisor/supervisord.conf
RUN echo "[include]" >> /etc/supervisor/supervisord.conf
RUN echo "files = /etc/supervisor/conf.d/*.conf" >> /etc/supervisor/supervisord.conf
RUN mv supervisord.conf /etc/supervisor/conf.d
EXPOSE 80
CMD ["/usr/local/bin/supervisord"]

#然后我们到docker服务器中构建docker镜像

docker build -t myapp . 构建docker镜像命令 (在当前myapp目录下)

等待构建好了以后就可以运行docker镜像

docker run -d -p 80:80 -d -it myapp 运行docker容器

#至此一来就可以用docker来启动python应用了。

© 著作权归作者所有

FenG_Vnc
粉丝 11
博文 24
码字总数 11100
作品 0
深圳
其他
私信 提问
Docker 基础知识-入门篇

1. Docker简介和KVM区别 1.1 docker的三大理念 构建 运输 运行 ps:有点类似于java代码,一次构建到处运行 1.2 docker结构 相关说明: image: 和虚拟机的镜像类似 container: 用镜像创建的实例...

wzaqj
2018/06/06
0
0
使用Gunicorn Ngnx Supervisor部署Django项目

Django作为最受欢迎基于Python的Web框架之一,为用户提供了一个轻量级的测试Server,但这个Server最好不要用于生产环境。那么如果我们需要在生产环境上面部署Django项目,那么我们使用什么环...

蓝色_风暴
2018/05/24
0
0
centos安装supervisor守护进程

supervisor(python写的进程守护程序,用于进程自启动和日志记录) 部署步骤: 1,安装: easyinstall supervisor 2,配置: (1)生成supervisor配置文件 echosupervisordconf > /etc/super...

chem_dev
2015/07/13
842
0
Linux服务器部署.Net Core笔记:四、安装Supervisor进程守护

Supervisor 是用 Python 开发的 Linux/Unix 系统下的一个进程管理工具。它可以使进程脱离终端,变为后台守护进程(daemon)。实时监控进程状态,异常退出时能自动重启。 Supervisor 不支持任...

爱听民谣的程序猿
2019/12/18
0
0
Docker容器运行多条命令(supervisor)

一, 简介 Dockerfile 运行只支持一条命令,当在Docker里要运行多条命令,用supervisor来管理就比较合适了。 Supervisor是一个 Python 开发的 client/server 系统,可以管理和监控类 UNIX 操作...

cbbing
2018/03/30
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Android实现App版本自动更新

现在很多的App中都会有一个检查版本的功能。例如斗鱼TV App的设置界面下: 当我们点击检查更新的时候,就会向服务器发起版本检测的请求。一般的处理方式是:服务器返回的App版本与当前手机安...

shzwork
32分钟前
39
0
npm 发布webpack插件 webpack-html-cdn-plugin

初始化一个项目 npm init 切换到npm源 淘宝 npm config set registry https://registry.npm.taobao.org npm npm config set registry http://registry.npmjs.org 登录 npm login 登录状态......

阿豪boy
39分钟前
67
0
java基础(16)递归

一.说明 递归:方法内调用自己 public static void run1(){ //递归 run1(); } 二.入门: 三.执行流程: 四.无限循环:经常用 无限递归不要轻易使用,无限递归的终点是:栈内存溢出错误 五.递...

煌sir
43分钟前
49
0
REST接口设计规范总结

URI格式规范 URI中尽量使用连字符”-“代替下划线”_”的使用 URI中统一使用小写字母 URI中不要包含文件(脚本)的扩展名 URI命名规范 文档(Document)类型的资源用名词(短语)单数命名 集合(Co...

Treize
今天
65
0
CentOS-配置YUM源加速(阿里云、Nexus3)

备份本地源 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup 配置CentOS6 $ wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/......

-自由人生-
今天
92
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部