Streamlit をコンテナ越しで serve する
Streamlit をコンテナ内で動かし、ホスト/ngrok 経由で触るときの定番フラグと段取り。
- 起動フラグ:
--server.port 8501(ポート固定)--server.headless true(サーバー文脈なのでブラウザ自動起動を抑止)--server.enableCORS false/--server.enableXsrfProtection false(ngrok やポートフォワード越しのアクセスでブロックされないように)
- ポート競合を先に潰す:再起動前に
pkill -f streamlit || true(古いプロセスが 8501 を掴んだまま だと起動に失敗する)。 - devコンテナで自動化:
devcontainer.jsonのforwardPorts: [8501, 8502]でホストに転送し、postAttachCommandのnohup streamlit run ... &でアタッチ時に自動起動(手動起動すら不要にできる)。 - 外から触らせるなら → ngrokで外部公開。ホストから起こすなら → Windowsホストからコンテナのアプリを起動する。
出典:gemini-rag(start.sh)、task-launcher、.devcontainer/devcontainer.json