Postgres と Redis を使って Django アプリを Docker 化する
Devin がマルチステージ Dockerfile と、Django・PostgreSQL・Redis を含む docker-compose.yml を作成し、そのスタックをビルドして実行し、動作を検証します。(任意)Ask Devin でプロジェクトのスコープを決める
Django アプリがどのサービスに依存しているかや、プロジェクト構成が分からない場合は、まず Ask Devin を使って調査してください。Ask Devin から直接 Devin セッションを開始することもでき、その場合は Ask Devin で取得した情報がコンテキストとしてすべて引き継がれます。
Devin に Django プロジェクトと requirements ファイルを渡す
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 ワーカーを追加し、ヘルスチェック、ボリューム、共有ネットワークを設定します
.dockerignoreを追加 — ビルドコンテキストに含める必要のないファイルを除外します(__pycache__、.git、tests/、docs/、*.pyc)docker compose up --buildを実行 — イメージをビルドし、Devin のターミナルですべてのサービスを起動します- アプリを検証 —
/api/health/に対して curl コマンドを実行し、Django がクリーンに起動し、PostgreSQL に接続し、Redis にも接続できることを確認します
スラッシュコマンドでセッションを制御する
セッション中にスラッシュコマンドを使って、Devin のワークフローの進め方を調整します。
/plan— Devin に、Docker の設定を書く前に進め方を整理して説明するよう依頼します。計画を確認し、必要に応じて修正案を提案してください。/test— Devin にコンテナー スタックを再ビルドして再検証するよう指示します。問題を早期に発見するため、変更のたびにこれを使ってください。/review— Devin に、自身の Dockerfile と Compose 設定について、セキュリティ上の問題、イメージサイズ、およびベストプラクティスの観点から、PR を作成する前にレビューするよう依頼します。
Devin Review を使用して PR をレビューする
Devin が PR を作成したら、Devin Review を使って Docker の設定をレビューします。Devin Review は、セキュリティ上の問題(root での実行、シークレットの露出)、ベストプラクティスが守られていない点(
.dockerignore がない、ヘルスチェックがない)、既存のインフラとの不整合を検知できます。