🧸Flask Web项目打包成Docker镜像
2024-10-23
| 2024-10-23
字数 444阅读时长≈ 2 分钟
🥳
尝试使用宝塔面板搭建flask项目运行环境,也可以绑定域名+端口的方式实现对外访问。但每次更新项目都需要改多处配置文件,很不利于维护。于是尝试使用将项打包为Docker镜像的方式,本文简单记录下过程,方便日后回忆。
 

一、保证项目包含必要文件

配置requirements.txt,如果使用MAC OS系统,记得删除无关的行,否则会报错

bash

pip freeze > requirements.txt
Bash
配置Dockerfile,我使用的是python镜像,这是基于Debian构建的,还不错。

bash

# 使用官方 Python 镜像 FROM python:3.12 # 设置工作目录 WORKDIR /app # 复制依赖文件 COPY requirements.txt . # 安装依赖 RUN pip install --no-cache-dir -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/ # 复制项目文件 COPY . /app # 设置环境变量 ENV FLASK_APP=app.py ENV FLASK_RUN_HOST=0.0.0.0 # 设置 Flask 运行端口 ENV FLASK_RUN_PO2RT=8087 # 暴露 Flask 默认端口 EXPOSE 8087 # 启动 Flask 应用 CMD ["flask", "run"]
Bash
项目文件夹如下图所示,需要包含static、templates、app.py、Dockerfile和requirements.txt。
notion image

二、配置docker镜像加速器为daocloud

json

{ "builder": { "gc": { "defaultKeepStorage": "20GB", "enabled": true } }, "experimental": false, "features": { "buildkit": true }, "registry-mirrors": [ "https://docker.m.daocloud.io" ] }
JSON
 
notion image
 

三、执行构建镜像命令

bash

(venv)cd query_demo (venv)docker build -t query_demo . # -t可以指定镜像名称
Bash
notion image
镜像生成成功,如下图:
notion image
 

四、镜像使用

bash

docker run -d -p 80:8087 -v /root/app:/app query_demo # -p 指定映射内部的8087端口为宿主机80端口 # -v 指定宿主机/root/app文件夹为容器内/app文件夹 # query_demo是创建好的镜像名称,创建的容器名称是随机生成的
Bash
  • 开发
  • iphoneX 16.7.11使用Winra1n2.1越狱iPad Pro M2越狱并安装Frida
    Loading...