Windows ホストからコンテナのアプリを起動する

devコンテナ内のアプリ(Streamlit 等)を、Windows 側の .bat ダブルクリックで起動する型 (task-launcher / gemini-rag のランチャー)。コア手順:

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

出典:task-launchergemini-rag。関連:コンテナ内からプロセスを自動起動