モビログ

ゲーム、ガジェット、お絵描きの記事が中心のブログです!

【Mac】M1 Mac(Apple Silicon)でx86イメージとARMイメージ両方のビルドと実行する方法について調べたこと【Docker】

気になるM1 Macでのバックエンド開発環境

昨年末にM1 MacBook Airを購入して意外と快適に使えています。フロントエンド開発に関してはRosetta2の利用でほとんど問題なく使えている印象です。 Dockerもプレビュー版が使えています。

mobilog.hateblo.jp

しかし気になるのはバックエンドの開発用途に使えるかということです。私は現在Intel Mac(MacBook Pro 16inch)のローカル環境とVirtualbox+Vagrant+Ubuntuの仮想化環境でGolangやPython、nginxを使用して開発しているのですが、Appleの言う「2年後にApple Silicon移行」ってバックエンドの開発環境はどうなるんだろうと不安に思っていたのですが、どうやらDockerの対応で解決できそうですね。

 

Apple M1チップ対応「Docker Desktop」はx86イメージのビルドと実行が可能

Docker社のブログに以下の記載がありました。 

www.docker.com

Many developers are going to experience multi-platform development for the first time with the M1 Macs. This is one of the key areas where Docker shines. Docker has had support for multi-platform images for a long time, meaning that you can build and run both x86 and ARM images on Desktop today. The new Docker Desktop on M1 is no exception; you can build and run images for both x86 and Arm architectures without having to set up a complex cross-compilation development environment.

Docker Hub also makes it easy to identify and share repositories that provide multi-platform images. 

 Google翻訳

多くの開発者は、M1Macで初めてマルチプラットフォーム開発を体験する予定です。 これは、Dockerが優れている重要な領域の1つです。 Dockerは長い間マルチプラットフォームイメージをサポートしてきました。つまり、今日デスクトップでx86イメージとARMイメージの両方をビルドして実行できます。 M1の新しいDockerデスクトップも例外ではありません。 複雑なクロスコンパイル開発環境をセットアップしなくても、x86アーキテクチャとArmアーキテクチャの両方のイメージを構築して実行できます。 Docker Hubを使用すると、マルチプラットフォームイメージを提供するリポジトリを簡単に識別して共有することもできます。 

 

Docker Desktopはマルチプラットフォームに対応するので、異なるCPUアーキテクチャーのイメージビルドと実行も可能にするそうです。正式な対応時期は不明ですが、しばらくはIntel Macを手放さず、時期的に問題ないと判断したところでApple Silicon Macに環境を移せばよさそうです。 

 

 M1 MacBook Air快適です。バッテリー消費、チップ・基盤の温度上昇の問題もなくいきなり現れた未来のモバイルマシン的な印象です。これは数年に渡って使いそう。(噂のM2 Macは上のグレードみたいですし)

 

M1 MacはまだVirtualBoxに対応していないので、最近はフロントエンド開発を勉強しています。フロントエンドってバックエンド以上に開発環境の変化の激しい世界だと思っていたのですが、最近は使用する技術がある程度決まってきてるんですね。(HTML/CSS/Javascriptくらいしか使ってなかったので知らない用語が多いです)

 

記載されている会社名・製品名・システム名などは、各社の商標、または登録商標です。