コンテナ内でFlutter開発
結論
flutter run -d web-server --release --web-hostname 0.0.0.0 --web-port 8080
もちろん、debugモードやprofileモードでも起動できる。
Perplexityの回答
コンテナ環境でFlutter開発をしている場合、-d chrome
(Chromeブラウザでのホットリロード実行)は基本的に使えません。
なぜなら、コンテナ内には通常GUIブラウザ(Chromeなど)がインストールされておらず、またコンテナからホストOSのChromeを直接制御することもできないためです[4][1]。
web-server
デバイスの利用
代替案:Flutterにはweb-server
というデバイスがあり、これを使うことでWebアプリをHTTPサーバとして起動し、外部のブラウザ(ホストOSのChromeなど)からアクセスして開発できます。
実行例
flutter run -d web-server --web-hostname 0.0.0.0 --web-port 18888
-
--web-hostname 0.0.0.0
で、コンテナ外(ホストPCや他の端末)からアクセスできるようにします。 -
--web-port 18888
で任意のポートを指定します(例:18888)。 - ホストPCのブラウザで
http://localhost:18888
またはhttp://:18888
にアクセスすれば、Flutterアプリの画面が表示されます[4]。
ホットリロードも利用可能
この方法でも、ターミナルでr
やR
キーを押すことでホットリロード/ホットリスタートが利用できます。
まとめ
- コンテナ内では
-d chrome
は使えない(GUIブラウザがないため)。 - 代わりに
-d web-server
を使い、ホストOSのブラウザからアクセスするのが一般的[4][1]。 - ホットリロードも可能なので、快適にWeb開発ができます。
参考コマンド:
flutter run -d web-server --web-hostname 0.0.0.0 --web-port 18888
ホストPCのブラウザで http://localhost:18888
にアクセスしてください。
Citations:
[1] https://qiita.com/AsilHatake/items/659672be51e3f466ffe5
[2] https://zenn.dev/kenfdev/articles/dba4dbd4526172
[3] https://wp.kobore.net/2024/04/04/post-14494/
[4] https://qiita.com/joule/items/ddc8303f9f40b0f666c3
[5] https://dtnavi.tcdigital.jp/cat_system/system_080/
[6] https://zenn.dev/tsuruo/articles/6a1d29caa43974
[7] https://codelabs.developers.google.com/codelabs/flutter-codelab-first
[8] https://note.com/ai_driven/n/n6483e1acafbf
Perplexity の Eliot より: pplx.ai/share