Skip to content

🐳 Docker 部署(自行构建镜像)

1. 项目结构

plaintext
DocTranslator/
├── frontend/          # 前端代码
├── admin/             # 管理员端代码
├── backend/           # 后端代码
├── nginx/             # Nginx 配置
│   └── nginx.conf     # Nginx 配置文件
......

2. 创建 Docker 网络

bash
docker network create my-network

3. 后端部署

3.1 配置环境变量

确保 DocTranslator/backend/.env 文件已正确填写相关环境变量

注意MYSQL数据库连接格式: PROD_DATABASE_URL=mysql+pymysql://user:pwd@localhost/xxxx

3.2 构建后端镜像

bash
cd DocTranslator/backend
docker build -t doctranslator .

3.3 运行后端容器

bash
cd ..
docker run -d \
  --name backend-container \
  --network my-network \
  -p 5000:5000 \
  doctranslator

注意:如果构建速度很慢,可以将backend的 Dockerfile换成下面这个

bash
# 使用官方的 Python 3.11 镜像(基于 Debian 12 bookworm)
FROM python:3.11-bookworm

# 设置工作目录为/app
WORKDIR /app


RUN sed -i 's|http://deb.debian.org|https://mirrors.aliyun.com|g' /etc/apt/sources.list.d/debian.sources && \
    sed -i 's|http://security.debian.org|https://mirrors.aliyun.com|g' /etc/apt/sources.list.d/debian.sources

# 安装系统依赖
RUN apt-get update && apt-get install -y \
    libgl1-mesa-glx \
    libglib2.0-0 \
    tesseract-ocr \
    libsm6 \
    libxext6 \
    libxrender-dev \
    libfontconfig1 \
    && apt-get clean \
    && rm -rf /var/lib/apt/lists/*

# 复制 backend 目录下的 requirements.txt
COPY requirements.txt .

# 安装 Python 依赖
RUN pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple

# 将整个 backend 目录复制到容器内的 /app
COPY . .

# 暴露端口(Flask 默认端口是 5000)
EXPOSE 5000

# 启动命令
CMD ["python", "app.py"]

4. 启动 Nginx

bash
docker run -d \
  --name nginx-container \
  -p 1475:80 \
  -p 8081:8081 \
  -v $(pwd)/nginx/nginx.conf:/etc/nginx/conf.d/default.conf \
  -v $(pwd)/frontend/dist:/usr/share/nginx/html/frontend \
  -v $(pwd)/admin/dist:/usr/share/nginx/html/admin \
  --network my-network \
  nginx:stable-alpine

5. 访问服务