在远程服务器上,docker部署flask服务
程序员文章站
2024-03-13 16:35:09
...
docker基础,前置知识:https://blog.csdn.net/aoxixi/article/details/103334794
容器像一个正常的操作系统一样,所以在部署服务的时候,编写dockerfile,需要把启动该服务需要的依赖安装上。
1、保证项目在远程服务器上能够正常启动,正常访问
1、保证代码没问题
2、编写 用到的requirement.txt
3、把代码上传到服务器
4、编写gunicorn.conf [flask项目启动,在linux环境下,必须要有一个可以提供http服务服务,类似于网关]
测试项目能否启动
gunicorn hello:app -c gunicorn.conf
5、curl http://127.0.0.1:5003#测试是否成功
hello.py
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello World'
if __name__ == '__main__':
app.run(debug=True, port=5003)
requirement.txt
flask
gunicorn
gevent
gunicorn.conf
workers = 5 # 定义同时开启的处理请求的进程数目
worker_class = "gevent" # 采用gevent库,支持异步处理请求
bind = "0.0.0.0:5003" # 监听IP放宽,以便于Docker之间,Docker和 宿主机之间通信
项目目录:
gunicorn 运行flask 成功:
upload_file.py 上传代码到服务器
from fabric2 import Connection
import shutil
host = '127.0.0.1'
user = 'xxx'
password = 'xxx'
conn = Connection(host=host, user=user, connect_kwargs={'password': password}, port=22)
shutil.make_archive('docker_flask', 'gztar', '../Docker_flask') # 将文件打包压缩
conn.put('docker_flask.tar.gz', '/home/testknpub') # 推送到服务器
conn.run('tar -C /home/testknpub/docker_flask -zxvf /home/testknpub/docker_flask.tar.gz') # 解压,注意权限问题
2、编写dockerfile
FROM python:3.8
MAINTAINER "ZYR"
WORKDIR /hello
ENV PIPURL "https://pypi.tuna.tsinghua.edu.cn/simple"
COPY requirement.txt ./
RUN pip install -i ${PIPURL} -r requirement.txt
copy . .
CMD ["gunicorn","hello:app","-c","./gunicorn.config.py"]
3、把项目以及项目的依赖,通过dockerfile,编译成image
sudo docker build -t 'docker_flask' .
sudo docker images
4、运行docker。
sudo docker run -it --rm -p 8888:8888 docker_flask
5、访问远程服务器上启动的flask
服务IP:端口
gunicorn + flask 简单示例
远程服务器上需要安装好启动flask所需要的环境 pip install flask。
gunicorn_demo.py
# gunicorn gunicorn_demo:app
[2017-12-23 10:36:09 +0000] [24441] [INFO] Starting gunicorn 19.7.1
[2017-12-23 10:36:09 +0000] [24441] [INFO] Listening at: http://127.0.0.1:8000 (24441)
[2017-12-23 10:36:09 +0000] [24441] [INFO] Using worker: sync
[2017-12-23 10:36:09 +0000] [24446] [INFO] Booting worker with pid: 24446
# curl http://127.0.0.1:8000/demo
gunicorn and flask demo.
推荐阅读
-
在远程服务器上,docker部署flask服务
-
在Windows上远程在linux服务器上创建新用户
-
配置文件在正式服务器上的部署
-
在阿里云服务器上配置CentOS+Nginx+Python+Flask环境
-
SpringBoot项目在IDEA中打jar包及部署在linux服务器上
-
在服务器上简单配置flask+uwsgi+nginx(只是可工作~嘿)
-
在服务器上简单配置flask+uwsgi+nginx(只是可工作~嘿)
-
求助:php项目如何部署在服务器上?
-
vue-cli3+ 打包部署到服务器后,svg在iphone上无法正常显示 -- 工作笔记
-
在 Django/Flask 开发服务器上使用 HTTPS