C#をLinuxやコンテナで動かせるようになって久しくC#をコンテナで実行している人も多いでしょう。 C#はlinuxのamd64(x86_64)とarm64の両方に対応しているので、ライブラリや実装コードに気を払えば「同一コードベースでマルチプラットフォーム動作」が可能です。 また、Visual StudioでDockerfileを自動生成できることも手伝いC#のコンテナイメージは簡単に作れます。 今回は、そんなC#のコンテナイメージをlinux/amd64・linux/arm64のマルチプラットフォームに対応させるやり方を紹介します。 構成 ベースとなるDockerfile デフォルトのDockerfileは何をしているのか 利用イメージがマルチプラットフォーム対応しているか確認する マルチプラットフォームビルドに対応する マルチプラットフォームビルドを実行する GitHub Acti