getsumei.space

月明ユキの雑記帳的なサイト。

MacにおいてGoアプリケーションを含むAMD64向けのDockerイメージのビルドに失敗する

疑問

Macにおいて、以下のようなコマンドでCloud RunのためにAMD64向けのDockerイメージをビルドしようとすると、

docker build --platform linux/amd64 -t am-api-for-compass-bridge-server:latest --build-arg project=server -f Dockerfile .

go buildが行われるところで、以下のようなエラーが発生してビルドが失敗する。

 => ERROR [builder 5/5] RUN CGO_ENABLED=0 GOOS=linux go build -o /app/bin/server ./cmd/server                                                                                                               12.4s 
------                                                                                                                                                                                                            
 > [builder 5/5] RUN CGO_ENABLED=0 GOOS=linux go build -o /app/bin/server ./cmd/server:                                                                                                                           
2.732 math: /usr/local/go/pkg/tool/linux_amd64/asm: signal: illegal instruction

コマンドから--platform linux/amd64を削除してビルドすると、成功する。

答え

Docker Desktopの設定画面を開き、GeneralタブのVirtual Machine OptionsでDocker VMMを選択する。

Docker Desktopの設定画面

参考資料

← ソフトウェア技術メモ 一覧へ