.NET MAUI Advent Calendar 2025 1日目の記事です。
TL;DR
- Docker を利用してサンプルアプリケーションを動かすことが容易に
- .NET MAUI 界隈では、非公式で Linux サポートを進めるコミュニティー (MauiGtk Community) が設立し、以前よりも活動が活発に
- 現在は既存の .NET MAUI プロジェクトを Linux 対応させることはできないが、これができるようにコミュニティーの活動が進行中
.NET MAUI の Linux 対応状況
現時点ではサンプルアプリケーションは動かせる状態です。しかし、既存の .NET MAUI アプリケーションに Linux 対応を追加できる段階までは進んでいません。
詳細については、1年前の Advent Calendar で書いたので、そちらを参考にしてください。(現在の状況とは多少異なる点もありますが、大まかな情報は把握できると思います)
試してみよう
今回は歴史や理論の話は少なめにして、実際に使ってみましょう。
前提
- .NET 8.0 SDK
- 最近 .NET 10 が出ましたが、本プロジェクトはまだ対応ができていません
- Docker (または Podman)
- docker の場合は、おそらく
sudoで実行する必要があります - 私の実機/WSL 環境では Docker で GUI がなかなか動かなかったため、Podman を利用しています
- docker の場合は、おそらく
- コマンドは Debian/Ubuntu 系を想定
- (他のディストリビューションでもコマンドを変えたら動くはずです)
1. Image を Pull
(Docker ファイルはこちらのリポジトリを利用しています: https://github.com/MauiGtk/maui-docker)
docker pull ghcr.io/mauigtk/maui-docker:main
# podman pull ghcr.io/mauigtk/maui-docker:main
2. Docker run で動かす
xhost + # ディスプレイへのアクセス権限を追加
docker run -it --rm -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix -t ghcr.io/mauigtk/maui-docker:main dotnet run --framework net8.0-gtk
# podman run -it --rm -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix -t ghcr.io/mauigtk/maui-docker:main dotnet run --framework net8.0-gtk
xhost - # ディスプレイへのアクセス権限を削除
できました!! が、最初は画面が小さく表示されるので、下に引き伸ばします。
これで、現在実装されている機能を見ることができます。
現時点では "Blazor" を押すとクラッシュするので押さないように…。
備考
その他の利用方法は maui-docker をご覧ください。
感想
このサンプルアプリケーションについては、2-3年前からあったと思います。ただ、起動のための手順が非常に複雑であり1、ドキュメントもほとんど存在しなかったので、多くの人は動かせない状況でした。
そこで、昨年後半頃から Thomas 氏 (MauiGtk Community の事実上のリーダー) や私でこのプロジェクトを再興しようと動きはじめました。それによって Thomas 氏 (+ 私) が開発したのが、この maui-docker であり、これによってサンプルアプリケーションの起動が簡単になりました。
これを動かす環境構築に非常に時間がかかった過去を振り返ると、ここまで簡単にできる方法が用意された (用意できた) ことに感動しています。
今後も、.NET MAUI で作られたアプリケーションを Linux 上で動かすことを目標に活動を進めていきたいと考えています。
追記
.NET MAUI のライバル (?) である、Avalonia が、.NET MAUI で Avalonia バックエンドを利用して Linux、Wasm 対応するプロジェクトを発表しました。急展開…!! 面白くなりそうですね。
-
とくに Workload のインストール部分 ↩

