文章内容
2025/11/25 8:22:39,作 者: 黄兵
Python 项目 docker 部署过程
最近在学习使用 Docker 部署 Python 项目,前几天也写了这篇文章:Dockerfile 构建系统与 GitHub,但是主要思考的是如何将项目打包成 Docker 镜像,部署到服务器上,一直没有操作。
最近正好有一个间的服务需要部署到服务器上,于是我尝试使用 Docker 镜像的凡是部署服务,于是将操作详细过程记录下来,以方便以后使用。
在我们编写完成项目之后,在项目的更目录新建如下文件:
.github/workflows/docker-image.yml
文件主要内容:
name: Build and Publish Docker Image
on:
push:
branches: ["main"]
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Log in to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Build Docker Image
uses: docker/build-push-action@v6
with:
context: .
push: true
tags: ${{ secrets.DOCKERHUB_USERNAME }}/data-monitor:latest新建完成之后,我们登录 GitHub,找到我们的项目,点击顶部的 Settings,截图如下:

之后找到右边的菜单,Secrets and variables 这个选项下面的 Actions 这里很容易找错,所以着重强调。截图如下:

之后设置 Repository secrets,截图如下:

这里需要设置 DOCKERHUB_USERNAME 和 DOCKERHUB_TOKEN,这两个参数我们可以登录 docker 找到这两个参数。
顶部是我们的用户名,我们填写到 GitHub 刚才 DOCKERHUB_USERNAME 设置的哪里:

下面的菜单我们需要新建一个 Token,截图如下:

填写 Token 相关信息,这里需要设置读写权限:

建好了会给我们一个 Token 值,我们直接填写到 GitHub 的 DOCKERHUB_TOKEN
这样就完成了 GitHub Actions 的设置。
同时在我们的项目根目录新建一个 Dockerfile 文件,内容如下:
FROM python:3.11-slim WORKDIR /app COPY requirements.txt . RUN pip install --no-cache-dir -r requirements.txt COPY . . ENV PYTHONUNBUFFERED=1 CMD ["python", "main.py"]
我们使用 Docker Compose 部署,所以我们还需要新建一个文件,内容如下:
services:
data-log-parser:
container_name: data-log-parser
image: xxxxx96/data-monitor:latest
restart: always
# 读取 .env 文件
env_file:
- .env
# 挂载主机日志文件和偏移文件目录
volumes:
- /root/nginx-quic/logs/access.log:/app/logs/access.log:ro
- /root/nginx-quic/logs:/app/logs
# 保持容器后台持续运行
command: python main.py新建完成这些文件之后,我们将代码提交,刚才新建的两个文件也一同提交到 GitHub。
之后我们到 GitHub,找到项目的 Actions 菜单,截图如下:

右边菜单会出现一个 Build and Publish Docker Image 的菜单,我们选择它:

这个就是我们刚才新建的 docker-image.yml 工作流内容,我们点击右边的 Run workflow 按钮,运行我们刚才设置的工作流:

这样就完成了在 GitHub Actions 完成 Docker 镜像的制作,同时会自动推送到 Docker Hub 上。
我们登录服务器,开始安装 Docker Compose v2,具体步骤查看这篇文章:Ubuntu 24.04 安装 Docker Compose v2。
安装完成之后,我们开始在服务器上准备:
✅ 1. 在服务器上准备部署目录
随便找一个地方(例如 /opt/data-monitor):
sudo mkdir -p /opt/data-monitor cd /opt/data-monitor
✅ 2. 创建 .env 文件
由于我们编写的代码服务依赖 .env,在该目录创建:
nano .env
写入我们项目中的配置:
REQUEST_URL="https://xxxxxx.com/log" # 容器内读取的路径(不要改) LOG_FILE="/app/logs/access.log" OFFSET_FILE="/app/logs/log_offset.txt"
保存退出。
✅ 3. 创建 docker-compose.yml
在 /opt/data-monitor/docker-compose.yml 写入:
services:
data-monitor:
container_name: data-monitor
image: xxxxx96/data-monitor:latest
restart: always
env_file:
- .env
volumes:
# 日志文件映射(你的服务器日志路径)
- /root/nginx-quic/logs/access.log:/app/logs/access.log:ro
# 偏移量文件存储
- /root/nginx-quic/logs:/app/logs
command: python main.py这里我们将宿主机的 /root/nginx-quic/logs/access.log 映射到 Docker 的 /app/logs/access.log 文件,这个文件具有读写权限。
✅ 4. 启动容器
在 /opt/data-monitor 目录中运行:
sudo docker-compose up -d
查看容器是否运行:
docker ps
✅ 6. 查看运行日志(确认正常工作)
docker logs -f data-monitor
🎉 这样我们就完成了部署!
其它相关推荐:
1、Ubuntu 24.04 安装 Docker Compose v2
评论列表