用 Docker Compose 一键搭建 Python 本地开发环境:从零开始的实战笔记
一、为什么要用容器来搭开发环境
本地直接装 Python 看似简单,但时间一长问题就来了:多个项目要用不同 Python 版本、依赖库版本互相打架、换一台电脑又要重配半天。更麻烦的是,新同事入职时照着文档配环境,经常因为少装一个系统依赖就卡住半天。
用 Docker 把环境“代码化”之后,这些问题基本消失:一份 Dockerfile 加一份 docker-compose.yml,任何机器上一条命令就能拉起完全一致的开发环境,版本、依赖、配置全部固化在代码里。
二、准备工作
1. Windows 或 macOS 安装 Docker Desktop;Linux 服务器上安装 docker 和 docker compose 插件。
2. 安装完成后验证:docker --version 和 docker compose version 都能正常输出即可。
3. 建议提前配置好国内镜像加速,避免拉取基础镜像超时。
三、实战:三分钟起一个 Python 开发环境
新建项目目录,写一个 Dockerfile:
FROM python:3.11-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
COPY . .
CMD ["python", "app.py"]
再写 docker-compose.yml,把代码目录挂载进容器、映射好端口,开发时本地改代码,容器里即时生效:
version: "3"
services:
web:
build: .
ports:
- "8000:8000"
volumes:
- .:/app
执行 docker compose up -d 启动,docker compose logs -f 查看日志,环境就跑起来了。
四、日常高频命令
docker compose up -d 启动服务;docker compose down 停止并清理;docker compose ps 查看状态;docker exec -it web bash 进入容器调试;改了 Dockerfile 后用 docker compose build 重新构建。
五、避坑清单
第一,.dockerignore 一定要配,把 .git、__pycache__、.venv 排除掉,否则构建上下文又大又慢。第二,有状态的数据(数据库文件、上传目录)用 volume 持久化,容器删了数据还在。第三,容器里尽量不要用 root 跑应用,注意挂载目录的权限。第四,生产镜像可以用多阶段构建瘦身,开发镜像则以方便调试为主。
六、小结
环境即代码是团队协作里性价比极高的一步。下一步可以试试把 MySQL、Redis 也编排进 compose,或者给常用环境做一层基础镜像,开发效率会再上一个台阶。
- 点赞
- 收藏
- 关注作者
评论(0)