Windows ホストからコンテナのアプリを起動する
devコンテナ内のアプリ(Streamlit 等)を、Windows 側の .bat ダブルクリックで起動する型
(task-launcher / gemini-rag のランチャー)。コア手順:
- コンテナ名を固定:
devcontainer.jsonのrunArgs: ["--name","python_lesson_devcontainer"]で名前を固定 → ホストからdocker exec python_lesson_devcontainer ...で確実に狙える。 (名前を固定しない場合はwsl docker ps --filter "label=devcontainer.local_folder=..."で検出。) - すでに起動済みか先に確認:対象ポートに TCP 接続できれば、起動せずブラウザを開くだけで終わる。
- コンテナが落ちていたら起こす:
docker exec ... echo okが失敗したらdocker start <name>。 それも失敗なら「VSCode で一度 Dev Container を開いて」と案内(初回はVSCode起動が要る)。 - 中で起動:
docker exec <name> bash -c "nohup streamlit run ... &"でバックグラウンド起動。 - ポートが開くまでポーリング(最大30秒)してから
Start-Process <URL>でブラウザを開く。 即開くと「まだ起動中」の白画面になるので待つ。
- WSL 下で docker が動くなら
wsl docker ...と前置きする(launch-gemini-rag.ps1)。 .batはpwsh -File ...ps1を呼ぶだけの薄いラッパにしておくとデスクトップ常駐しやすい。