Docker配置Python环境

前提准备

配置 Docker

自定义容器构建

容器配置

文件目录:

.
├── .devcontainer/              <-- 新建这个文件夹
│   └── devcontainer.json       <-- 新建这个文件 (核心配置)
├── dockerfiles/
│   └── Dockerfile              <-- 你的 Dockerfile
├── docker-compose.yml          <-- 你的 Compose 文件
└── requirements.txt            <-- 依赖文件

devcontainer.json文件:
负责指挥 VS Code,告诉它连接到 docker-compose.yml 启动的服务,并在里面开始工作

{
  "name": "Python Full Dev",
  
  // 指向上一级目录的 docker-compose 文件
  "dockerComposeFile": "../docker-compose.yml",
  
  // 这里必须匹配 docker-compose.yml 中的 service 名字
  "service": "python-dev-service",
  
  // 告诉 VS Code 项目根目录在容器里的路径 (匹配 docker-compose 的 volumes)
  "workspaceFolder": "/app",

  // 个性化配置:自动安装 VS Code 插件
  "customizations": {
    "vscode": {
      "extensions": [
        "ms-python.python",          // Python 核心插件
        "ms-python.debugpy",         // 调试工具
        "njpwerner.autodocstring"    // (可选) 自动生成文档注释
      ]
    }
  },

  // 容器创建后的操作
  // 例如:每次重新构建容器后,自动再次安装依赖,防止 requirements.txt 更新后容器没更新
  "postCreateCommand": "pip install -r requirements.txt",

  //以此用户连接 (Python 镜像默认 root,开发环境通常用 root 比较方便处理权限)
  "remoteUser": "root"
}

Dockerfile文件:
负责读取 requirements.txt 并将这些包安装到基础 Python 镜像中,创建出开发环境镜像

# 使用完整版 Python (基于 Debian),包含 GCC 等常用工具
FROM python:3.11

# 设置工作目录
WORKDIR /app

# 环境变量设置
ENV PYTHONDONTWRITEBYTECODE=1 \
    PYTHONUNBUFFERED=1 \
    PIP_ROOT_USER_ACTION=ignore

# 更新 pip
RUN pip install --upgrade pip

# 1. 复制依赖文件 (依赖于 docker-compose 的 context 设置)
COPY requirements.txt .

# 2. 安装依赖
# 即使 requirements.txt 是空的,这一步也不会报错
RUN pip install --no-cache-dir -r requirements.txt

# 这里的 CMD 其实会被 Dev Containers 覆盖,但为了 standalone 运行保留它
CMD ["tail", "-f", "/dev/null"]

docker-compose.yml文件:
负责根据镜像启动容器服务,并将你本地的项目目录实时同步到容器内部。

version: '3.8'

services:
  python-dev-service:
    # 容器名称
    container_name: my_python_dev
    
    build:
      # 【重要】上下文设为根目录,这样 Dockerfile 才能访问 requirements.txt
      context: .
      dockerfile: dockerfiles/Dockerfile
    
    # 将当前根目录挂载到容器内的 /app
    volumes:
      - .:/app
    
    # 映射端口 (根据你的项目需求修改)
    ports:
      - "8000:8000"
    
    # 也就是通常说的 "sleep infinity",保持容器不退出
    command: tail -f /dev/null

requirements.txt文件:
列出所需的包,暂时不需要设计

创建容器步骤

  1. 点击 VSCode 左下角「打开远程窗口」
  2. 点击「在容器中重新打开」

测试是否安装成功

目录:

.
└── test.py

在终端执行,观察输出即可知道是否安装成功

python test.py
posted @ 2025-11-26 17:08  半截山上的小猫  阅读(25)  评论(0)    收藏  举报