You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

开发环境中Docker运行自有包Python项目的热更新方案咨询

解决方案

方案一:开发环境用pip可编辑安装(推荐)

这种方式让Python直接引用本地源码,修改代码后无需重建镜像,重启容器即可生效。

  1. 修改Dockerfile.dev,改用可编辑模式安装:
# syntax = docker/dockerfile:1-labs
FROM python:3.11

WORKDIR /app
COPY --link ./pyproject.toml /app/pyproject.toml
RUN pip install --no-cache-dir --upgrade pip
# -e参数启用可编辑模式,仅安装依赖,源码引用本地目录
RUN pip install --no-cache-dir -e /app  # 若项目有dev依赖组,可改为-e /app[dev]
  1. 调整docker-compose.yml的运行配置:
version: '3'
services:
  myproject:
    build:
      context: .
      dockerfile: Dockerfile.dev
    environment:
      - PYTHONUNBUFFERED=1
      - PYTHONDONTWRITEBYTECODE=1
      # 可选:指定PYTHONPATH确保Python能找到src下的包
      - PYTHONPATH=/app/src
    env_file:
      - .env
    ports:
      - 8080:8080
    volumes:
      - .:/app
    entrypoint: "python /app/src/myproject/main.py"

原理:pip install -e会在Python的site-packages中创建软链接指向本地源码目录,容器运行时直接读取挂载的本地最新代码,无需重新安装包。

方案二:分离依赖安装与源码运行

如果不想用可编辑安装,可让镜像仅安装依赖,运行时直接使用挂载的本地源码:

  1. 修改Dockerfile.dev,只安装项目依赖:
# syntax = docker/dockerfile:1-labs
FROM python:3.11

WORKDIR /app
COPY --link ./pyproject.toml /app/pyproject.toml
RUN pip install --no-cache-dir --upgrade pip
# 仅安装项目依赖,不安装项目本身
RUN pip install --no-cache-dir -r <(pip install --dry-run /app | grep -oP '^\w+==\d+\.\d+\.\d+')
  1. 在docker-compose.yml中指定源码路径:
version: '3'
services:
  myproject:
    build:
      context: .
      dockerfile: Dockerfile.dev
    environment:
      - PYTHONUNBUFFERED=1
      - PYTHONDONTWRITEBYTECODE=1
      - PYTHONPATH=/app/src  # 让Python识别src下的myproject包
    env_file:
      - .env
    ports:
      - 8080:8080
    volumes:
      - .:/app
    entrypoint: "python /app/src/myproject/main.py"

原理:镜像仅预装依赖,运行时直接加载本地挂载的源码,修改代码后重启容器即可生效,只有依赖更新时才需要重建镜像。

额外配置检查

确保pyproject.toml中包路径配置正确:

[project]
name = "myproject"
version = "0.1.0"
packages = [{editable = true, path = "src"}]

内容的提问来源于stack exchange,提问作者user2875308

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 10:55:12