Docker 之 Python Flask 服务的构建运行

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-2 16:29   945   0

前言

使用Docker容器的形式运行一个简单的Flask项目

步骤

一.编写py代码

1.用python编写一个简单的Flask项目,这里我使用的是PyChram进行项目的编写

创建一个名叫app.py的文件如下:(值得注意的是:Flask 需要一波倒包,鼠标移动到Flask 按 Alt + Enter 完成倒包)

#!/user/bin/env python3
# -*- coding: utf-8 -*-
# @Email  : 3431463@qq.com

from flask import Flask

app = Flask(__name__)


@app.route('/')
def index():
    return '<h1>Hello World!</h1>'


@app.route('/user')
def getUserName():
    return '<h1>Tommy </h1>'


if __name__ == '__main__':
    app.run(host='0.0.0.0', port=7777, debug=True)

2.代码编写完成,首先就是在PyCharm中先运行一波代码,测试下效果,空白处右键选择 Run ‘app’ 代码正常跑起来:

3.打开浏览器输入 http://localhost:7777 回车 出现 Hello World!说明你Flask没有问题阔以制作docker镜像了

二.把flask服务构建成一个docker镜像

1.创建两个文件 Dockerflie 跟 requirements.txt (注意:Dockerfile是没有拓展名的

1.1)Dockerfile 是 docker 构建镜像文件的基础,docker会根据Dockerfile的命令构建镜像,Dockerfile代码如下:

FROM python:3.8

WORKDIR /app

ADD . /app

RUN pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

EXPOSE 7777

CMD ["python", "app.py"]

大致意思:

采用的是 python3.8 版本

设置docker容器的工作目录 /app

将当前目录下的所有内容拷贝到容器中的 /app 目录下(app.py Dockerfile requirements.txt)

倒入app.py所需要的包(这里就是Flask的包了)后面是镜像源,万一你要引入的包需要阔学上网那就不好办了,所以设置了一个国内的镜像源确保万无一失

容器对外暴露的端口号:7777

执行 python 代码 app.py

1.2)requirement.txt为python的依赖库

Flask==1.1.1

2021.4.15 补充说明。这里有个问题,1.1.1哪里来的?要是我有很多很多的包,我总不能一个一个找吧?

==============================================================================2021.4.15

没有错,肯定是不用一个一个找的,我打开pycharm下面的Terminal命令行,输入 pip freeze 回车就会有你这个项目所依赖滴东西加版本

当然了,pip指的是你基于python2,很多老铁电脑里面是python3那就用 pip3 freeze

因为是后面补充的知识点,所以我的图有很多包,这是另一个项目的,不要在意,看看思路就行。

这些就是你要填在requirement.txt中的依赖了。

==============================================================================2021.4.15

2.开始构建镜像

2.1)cd 目录到你的python目录下,即:Dockerfile文件目录下

补充说明一点哈,如果你在这个目录下打包镜像,那么是会把venv这个文件夹一起打包的,无端增加了一波大小,所以最好自己创建一个文件夹,把这三文件丢里面,然后再cdUsssp4b33CF3Cb33Cb33C

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP