zoukankan      html  css  js  c++  java
  • docker 简单部署 flask 多个app

    1. 书写 gunicron 配置文件

      1. dash-gunicron.py
      2. public-gunicron.py
      1. 使用其配置请求记录, 那么nginx 可以不写请求日志
      2. 书写错误日志

      dash-gunicron.py

      workers=8 # 进程数
      threads = 2 # 工作者的线程数
      bind = '0.0.0.0:5558'
      daemon = 'false' # 使用suppervisor 管理,  暂时使用nohup
      worker_class = "gevent" # 并发
      worker_connections = 2000
      pidfile = '/var/run/gunicorn.pid' # 设置进程文件目录
      accesslog = '/var/log/gunicorn/gun_dash_acess.log'
      errorlog = '/var/log/gunicorn/gun_dash_error.log'
      # 设置日志记录水平
      loglevel = 'warning'
      

      public-gunicron.py

      workers=8 # 进程数
      threads = 2 # 工作者的线程数
      bind = '0.0.0.0:5555'
      daemon = 'false' # 使用suppervisor 管理,  暂时使用nohup
      worker_class = "gevent" # 并发
      worker_connections = 2000
      pidfile = '/var/run/gunicorn.pid' # 设置进程文件目录
      accesslog = '/var/log/gunicorn/gun_public_acess.log'
      errorlog = '/var/log/gunicorn/gun_public_error.log'
      # 设置日志记录水平
      loglevel = 'warning'
      
    2. 书写Dockerfile

    我们使用nginx做代理

    下载配置文件

    做好在执行的时候配置好nginx 配置

    FROM python:3.6.9
    WORKDIR ~/docker/python-web
    COPY requirments.txt ./
    # 从指定源下载
    RUN pip install -r requirments.txt  -i https://pypi.tuna.tsinghua.edu.cn/simple
    RUN mkdir -p /var/log/gunicorn
    RUN touch  /var/log/gunicorn/gun_public_access.log
    RUN touch  /var/log/gunicorn/gun_public_error.log
    RUN touch  /var/log/gunicorn/gun_dash_access.log
    RUN touch  /var/log/gunicorn/gun_dash_error.log
    # 将项目拷贝到容器工作目录下
    COPY . .
    CMD ["nohup", "gunicorn", "app:dash()", "-c", "dash-gunicorn.py"], ">", "/var/log/web/dash.out"
    CMD ["nohup", "gunicorn", "app:public()", "-c", "dash-gunicorn.py"], ">", "/var/log/web/public.out"
    

    3.打包镜像

    docker image build -t ceshi .
    

    4.启动docker

    docker-run.sh

    docker run -d --name ceshi  -p 8000:5558 -p 8080:5555 ceshi 
    
    5.进入docker 空间
    docker exec -it ceshi  /bin/bash
    

    如果需要使用nginx 则在外部创建nginx 进行代理, 或者在容器内代理都是可以的

  • 相关阅读:
    转:MVC分页
    转:更新Android SDK之后Eclipse提示ADT版本过低的一个简易解决办法
    DataGridView 添加鼠标右键选择行
    WinForm 中使用ScintillaNet
    C#获取当前程序运行路径的方法集合
    Winform DataGridView鼠标右键选择列
    EF 数据查询(更改默认排序)
    使用lambda表达式进行对象结合的筛选操作
    使用SSIS生成数据导出为Excel文件的模板
    Sql server 数据库中计算每天的开始结束时间
  • 原文地址:https://www.cnblogs.com/ShanCe/p/14536999.html
Copyright © 2011-2022 走看看