前言
使用Flask框架写完API服务后,利用Docker容器化部署是非常常见的操作,它可以帮你轻松管理和扩展你的应用。
假设目录结构如下:
1 | app/ |
一、创建 Flask 应用并确保其可以在本地运行
首先,确保你有一个可以在本地运行的 Flask 应用,如下所示:
1 | # app.py |
二、编写DockerFile以构建Docker镜像,包含Flask应用及其依赖
接下来,你需要编写一个DockFile来定义如何构建docker镜像,比如:
docker/DockerFile
1 | #基础镜像 |
二、构建镜像
==重要:构建时要指定 Dockerfile 路径,并以项目根目录为构建上下==
1 | docker build -t api-flask -f docker/Dockerfile . |
-f docker/Dockerfile: 指定 Dockerfile 路径。
. 是构建上下文(表示当前目录,必须包含你的 app.py 和 requirements.txt)。
三、启动容器
1 | docker run -it -d --name="api" --restart=always -p 8090:8090 api-flask:latest |
四、通过shell脚本一键构建 (推荐)
创建构建shell脚本,如下所示 (路径:shell/buil.sh):
build.sh
1 | #!/bin/bash |
五、最终构建如下
1 | cd /shell |
启动构建DockerFile并安装flask依赖
最终启动成功服务器docker上监听8090端口,api服务部署成功
问题
DockFile中第一步骤,拉取 FROM python:3.9-slim 镜像有时无法拉取问题
解决方案:
1 | 1、切换国内镜像源,如淘宝、华为、清华等镜像源等 |
PS:Shell脚本构建无需关心镜像问题,自动判断本地应用目录中的基础镜像包。