このエントリは2026/06/10現在の情報に基づいています。将来の機能追加や仕様変更に伴い、記載内容からの乖離が発生する可能性があります。
いつもの主から以下のような問い合わせがあった。
問い合わせ1
Apple Siliconのマシンで、linux/amd64プラットフォームのコンテナーイメージを作成するにはどうしたらいい?
話によると、Azure Container Appsで久々に遊ぼうとしたところ、作成したコンテナーイメージが動作しなかったので原因を調査したら、linux/arm64ベースのコンテナーイメージを作成してしまっていた、というのが背景にある(これはちょっと調べたらわかりそうなものだが、それは言わないでおく)。
主も気づいた通り、Apple Siliconのマシンでビルドすると、デフォルトでは linux/arm64 になってしまう。そしてAzure Container Appsはlinux/amd64のコンテナーイメージのみをサポートするため、なんとかビルドしたいのだ、という問い合わせ。
Azure Container Apps では、以下がサポートされています。
- 任意の Linux ベースの x86-64 (
linux/amd64) コンテナー イメージ- 任意のパブリックまたはプライベート コンテナー レジストリからのコンテナー
- オプションのサイドカーと init コンテナー
Azure Container Apps supports:
- Any Linux-based x86-64 (
linux/amd64) container image- Containers from any public or private container registry
- Optional sidecar and init containers
Azure Container Apps のコンテナー / Containers in Azure Container Apps
https://learn.microsoft.com/azure/container-apps/containers
解決策1
これは簡単で、--platformで明示的に指定すればいい。例えば、以下のような感じ。
docker build --platform linux/amd64 -t hoo/bar:latest .
問い合わせ2
ちょっとできるようになると、また質問したくなるのが人情ってもの。次はNative Image作成時の問題。
Apple Siliconのマシンで、linux/amd64プラットフォームのコンテナーイメージは作成できるようになった。だがNative Imageを作成しようとしたら、ResourceExhausted … cannot allocate memory のメッセージが出て作成できない。どうしたらいい?
「それはあんたの環境でメモリの割り当てが不足してるからや!」という言葉が出そうになったが、優しく伝えることにした。
解決策2
例えばDocker Desktopを使っている場合、デフォルトのリソース割り当ては
- メモリ上限:8 GB
- スワップ:1 GB
ぐらいになっている(環境によって異なる)。この8 GBの上限により、リソース枯渇が発生していたので、この上限を緩和してあげればいい。以下はその例。

とはいえ
linux/amd64ベースのNative Imageコンテナーを作成しようとするなら、無理にApple Silicon上でビルドするのではなく、GitHub Actionsなどのlinux/amd64ベースのhosted runner上でビルドしたほうがいい。Apple Silicon上でビルドするとQEMU エミュレーション経由になるため、特に GraalVM Native Image のような重い処理では遅くなり、メモリ不足になりやすい、というのが理由。