Open1

コンテナ内でFlutter開発

js4000alljs4000all

結論

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]。

ホットリロードも利用可能

この方法でも、ターミナルでrRキーを押すことでホットリロード/ホットリスタートが利用できます。


まとめ

  • コンテナ内では-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