1. 修改代码以读取配置文件

首先,您需要将代码修改为从配置文件读取这些参数。可以使用 .env 文件和 python-dotenv 库来实现。

安装 python-dotenv

在您的环境中安装 python-dotenv

pip install python-dotenv

修改代码

更新您的 Flask 应用代码如下:

from dotenv import load_dotenv #导入load_dotenv
import os  #导入os
load_dotenv()# 加载环境变量

2. 创建 .env 文件

在项目根目录下创建一个 .env 文件,内容如下(根据实际需要进行修改):

MAC=00:e2:69:6e:bc:53
USERNAME=lixiansen2
PASSWORD=46827913
PORT=8085

修改代码,将env中的配置导入代码中

# 从环境变量获取配置 
mac = os.getenv("MAC") 
USERNAME = os.getenv("USERNAME") 
PASSWORD = os.getenv("PASSWORD")

3. 创建 Dockerfile

在项目根目录下创建一个 Dockerfile,内容如下:

# 使用 Python 基础镜像
FROM python:3.9-slim

# 设置工作目录
WORKDIR /app

# 复制需求文件并安装依赖
COPY requirements.txt requirements.txt
RUN pip install --no-cache-dir -r requirements.txt

# 复制应用代码
COPY . .

# 暴露端口
EXPOSE 8085

# 设置环境变量
ENV PYTHONUNBUFFERED 1

# 运行应用
CMD ["python", "app.py"]

4. 创建 requirements.txt

在项目根目录下创建一个 requirements.txt 文件,列出所需的库:

Flask
scapy
paramiko
wakeonlan
python-dotenv

5. 构建 Docker 镜像

在项目根目录下运行以下命令以构建 Docker 镜像:

#默认是在项目的目录下执行
docker build -t my_flask_app .  

6. 运行 Docker 容器

使用以下命令运行 Docker 容器:

docker run --env-file .env -p 8085:8085 my_flask_app

注意事项

1. 文件命名

  • 应用文件:确保您的 Flask 应用文件(如 app.py)的名称与 Dockerfile 中的 CMD 指令一致。如果您的主文件名是 app.py,那么在 Dockerfile 中的 CMD 应该是:

    CMD ["python", "app.py"]
    
  • Dockerfile:确保您的 Dockerfile 文件名为 Dockerfile(不带扩展名),并放在项目的根目录下。

2. 目录结构

确保您的项目目录结构类似于以下格式:

my_flask_app/
│
├── app.py               # Flask 应用代码
├── Dockerfile           # Dockerfile
├── requirements.txt     # 依赖文件
└── .env                 # 环境变量文件

3. 其他注意事项

  • requirements.txt:确保在 requirements.txt 中列出所有必要的依赖项,以便 Docker 可以正确安装它们。

  • .env 文件:确保 .env 文件存在并包含正确的配置。