将使用 Postgres 和 Redis 的 Django 应用 Docker 化
Devin 编写一个多阶段 Dockerfile 和一个包含 Django、PostgreSQL 与 Redis 的 docker-compose.yml,然后构建并运行整套服务以验证其可用性。(可选)使用 Ask Devin 规划项目范围
如果你不确定你的 Django 应用依赖哪些服务,或者项目结构如何,可以先使用 Ask Devin 来了解情况:你也可以直接从 Ask Devin 发起 Devin 会话,它会把之前获取的全部信息作为上下文继续使用。
将你的 Django 项目和依赖项交给 Devin
将 Devin 指向需要容器化的 Django 项目,并说明任何特定要求——例如基础镜像偏好、应用依赖的服务或镜像大小限制。Devin 会读取你的
requirements.txt 或 pyproject.toml 来推断其余内容。Devin 调研并构建
Devin 读取你的 Django 项目及依赖文件以理解构建流程,并据此创建 Docker 配置:
- 读取依赖文件 — 解析
requirements.txt或pyproject.toml,识别 Django、psycopg2、redis、celery 和 gunicorn - 编写 Dockerfile — 创建一个多阶段构建,在构建阶段安装依赖,并将虚拟环境复制到精简的
python:3.12-slim运行时镜像中
- 编写 docker-compose.yml — 添加 Django、PostgreSQL、Redis 和一个 Celery worker,并配置健康检查、数据卷和共享网络
- 添加 .dockerignore — 排除不属于构建上下文的文件(
__pycache__、.git、tests/、docs/、*.pyc) - 运行
docker compose up --build— 构建镜像并在 Devin 的终端中启动所有服务 - 验证应用 — 通过 curl 调用
/api/health/来确认 Django 能正常无误地启动、连接到 PostgreSQL,并访问 Redis
通过斜杠命令引导会话
在会话期间使用斜杠命令来引导 Devin 的工作流程:
/plan— 让 Devin 在编写任何 Docker 配置之前先给出实现方案概要。审查该方案并提出修改建议。/test— 告诉 Devin 重新构建并重新验证容器栈。每次更改后使用此命令以尽早发现问题。/review— 让 Devin 在打开 PR 之前审查自己的 Dockerfile 和 Compose 配置,检查安全问题、镜像大小以及最佳实践。
使用 Devin Review 审查该 PR
一旦 Devin 创建 PR,使用 Devin Review 来审查 Docker 配置。Devin Review 可以发现安全问题(以 root 用户身份运行、暴露的机密信息)、缺失的最佳实践(没有
.dockerignore、没有健康检查),以及与你现有基础设施不一致的地方。