ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

Docker + Flask + gunicorn + nginx + supervisord 部署服务

2021-10-25 15:58:49  阅读:242  来源: 互联网

标签:RUN gunicorn etc Flask app nginx conf supervisord


Dockerfile

FROM registry.cn-hangzhou.aliyuncs.com/hzmodi/python3.8:v2

RUN sed -i "s@/archive.ubuntu.com/@/mirrors.163.com/@g" /etc/apt/sources.list \
    && rm -rf /var/lib/apt/lists/* \
    && apt-get update --fix-missing -o Acquire::http::No-Cache=True
RUN apt install -y nginx supervisor pngquant
RUN pip install gunicorn

# flask application
RUN mkdir /root/compression
WORKDIR /root/compression
COPY  app.py /root/compression/
COPY  requirements.txt /root/compression/
RUN pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/

# nginx
RUN rm /etc/nginx/sites-enabled/default
COPY flask.conf /etc/nginx/sites-available/
RUN ln -s /etc/nginx/sites-available/flask.conf /etc/nginx/sites-enabled/flask.conf
RUN echo "daemon off;" >> /etc/nginx/nginx.conf

# supervisord
RUN mkdir -p /var/log/supervisor
COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf
COPY gunicorn.conf /etc/supervisor/conf.d/gunicorn.conf

# run
CMD ["/usr/bin/supervisord"]


flask  app.py

from flask import Flask, request

app = Flask(__name__)
# app.config['FLASK_ENV'] = 'development'


@app.route('/', methods=['GET'])
def index():
    return 'hello world'



if __name__ == '__main__':
    app.run(host='0.0.0.0')

gunicorn.conf

[program:gunicorn]
command=gunicorn --workers=2 app:app -b 0.0.0.0:4396
directory=/root/compression/

nginx.conf

server {
    listen      80;

    location / {
        proxy_pass http://127.0.0.1:4396;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

supervisord.conf

[supervisord]
nodaemon=true

[program:nginx]
command=/usr/sbin/nginx

标签:RUN,gunicorn,etc,Flask,app,nginx,conf,supervisord
来源: https://blog.csdn.net/qq_42004597/article/details/120953582

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有