Skip to content

feat: crane_web_debugger の Docker 開発時ホットリロードを有効化#1342

Merged
HansRobo merged 1 commit intodevelopfrom
feat/web-debugger-hot-reload
Apr 21, 2026
Merged

feat: crane_web_debugger の Docker 開発時ホットリロードを有効化#1342
HansRobo merged 1 commit intodevelopfrom
feat/web-debugger-hot-reload

Conversation

@HansRobo
Copy link
Copy Markdown
Member

概要

crane_web_debugger の開発ワークフロー改善。ソース変更のたびに docker compose build が必要だった問題を解消し、ブラウザリロードまたは uvicorn 自動再起動で変更を反映できるようにする。

背景・根本原因

docker/dev/docker-compose.yamlweb-debugger サービスに volumes 設定がなく、web/web_server/app.py が Dockerfile の COPY によってイメージへ焼き込まれていた。そのため、フロントエンドの微小な変更でも再ビルドが必須となっていた。

変更内容

  • docker/dev/docker-compose.yaml

    • crane_web_debugger/web//app/web に read-only マウントを追加
    • crane_web_debugger/web_server/app.py/app/app.py に read-only マウントを追加
    • uvicorn を --reload --reload-include app.py 付きで起動するよう command を上書き(静的ファイル変更では不要なリロードが走らないよう reload-include で絞り込み)
    • WEB_ROOT 環境変数を追加
  • crane_web_debugger/web_server/app.py

    • モジュールトップレベルで app = create_app(...) を生成し、uvicorn の "app:app" import-string 形式(--reload に必要)に対応
    • WEB_ROOT 環境変数でルートディレクトリを指定可能に(デフォルト: /app/web
    • 従来の python3 app.py --web-root ... 起動との後方互換を維持(Dockerfile の CMD は変更なし)

開発フローの変化

変更内容 変更前 変更後
web/*.html/.js/.css 編集 docker compose build + up -d ブラウザで Ctrl+F5
web_server/app.py 編集 docker compose build + up -d uvicorn 自動リロード
requirements.txt 更新 docker compose build + up -d 同左(変わらず)

## 背景
ソースを編集するたびに `docker compose build` が必要で開発効率が悪かった。
フロントエンドは素の HTML/JS で、Python サーバも静的配信のみという構成のため、
ボリュームマウントと uvicorn --reload で容易に解決できる。

## 変更内容
- `docker/dev/docker-compose.yaml`: `web-debugger` サービスに volumes と command を追加
  - `crane_web_debugger/web/` と `web_server/app.py` をコンテナへ read-only マウント
  - uvicorn を `--reload --reload-include app.py` オプションで起動
  - `WEB_ROOT` 環境変数を追加
- `crane_web_debugger/web_server/app.py`:
  - モジュールトップレベルで `app` を生成し、uvicorn の import-string 形式に対応
  - `WEB_ROOT` 環境変数でルートディレクトリを指定可能に(デフォルト: `/app/web`)
  - 従来の `python3 app.py --web-root ...` 起動との後方互換を維持
@HansRobo HansRobo merged commit 88acb39 into develop Apr 21, 2026
7 of 8 checks passed
@HansRobo HansRobo deleted the feat/web-debugger-hot-reload branch April 21, 2026 14:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant