- VSCode で「Dev Containers」拡張機能をインストール
.env.exampleを.envにコピーし、環境変数を設定- VSCode でプロジェクトを開き、「Reopen in Container」を選択
Dev Container 起動時に以下が自動実行されます:
uv sync --extra dev- uv で開発依存関係をインストールuv run task lock_dev- taskipy で requirements-dev.txt を生成uv run task install_dev- pip で requirements-dev.txt からインストール
# コンテナ内でアプリケーションを起動
$ python manage.py migrate
$ python manage.py runserver 0.0.0.0:8000# 環境変数用のファイル作成
$ touch .env
$ cp .env.example .env$ docker compose up -d
# コンテナの作り直しが必要な場合
$ source ./remake_container.shこのプロジェクトでは taskipy を使用して開発依存関係を管理しています。
pyproject.toml を編集した後、以下のコマンドで requirements-dev.txt を再生成します:
$ docker compose run --rm backend uv run task lock_devこのコマンドは uv pip compile を実行し、pyproject.toml の [project.optional-dependencies] dev セクションから requirements-dev.txt を生成します。
$ docker compose run --rm backend uv run task install_dev- pyproject.toml の
[project.optional-dependencies] devセクションにパッケージを追加 task lock_devを実行して requirements-dev.txt を再生成uv lockを実行して uv.lock を更新
# 例: 新しいパッケージを追加した後
$ docker compose run --rm backend uv lock
$ docker compose run --rm backend uv run task lock_dev$ docker compose up -dアプリケーションURL: http://localhost:8000/web/
# app 追加
$ mkdir web
$ docker compose run --rm backend uv run django-admin startapp web web
$ docker compose run --rm backend uv run ruff check . --fix
$ docker compose run --rm backend uv run ruff format .
# djlint によるフォーマット
$ docker compose run --rm backend uv run djlint templates/*/*.html --extension=html.j2 --reformat
http://127.0.0.1:8000/web/
# セキュリティチェック
$ docker compose run --rm backend uv tool run djcheckup http://host.docker.internal:8000/web/- Devin's Machine でリポジトリ追加
- そのまま
# 環境変数用のファイル作成
$ touch .envrc
$ cp .envrc.example .envrc
$ direnv allow- ローカル用
$ brew install direnv$ docker compose up -d
# コンテナ作り直し
$ source ./remake_container.sh$ docker compose run --rm backend uv run ruff check .
# 参考 フォーマット
$ docker compose run --rm backend uv run ruff format .
# mypy による型ヒントチェック
$ docker compose run --rm backend uv run mypy .
$ docker compose run --rm backend uv run djlint templates/*/*.html --extension=html.j2 --lint- no tests ran in 0.00s だと Devin の Verify が通らないっぽい
$ docker compose run --rm backend uv run pytest$ http://localhost:8000/ がアプリケーションのURL- 必ず日本語で回答してください
- Python, Django を利用する
- データベースは Postgres
- テストは pytest を利用する を入力