无法使用新的 Mac M1 构建 Docker 映像

2023-12-27

我正在尝试为我的应用程序构建一个 Docker 映像,以便在集成测试中使用。

该图像可以在我的 2017 年旧 Macbook 上正常构建,但在使用 M1 芯片的新 Macbook 上尝试时失败。

我收到的错误是:

unable to build image: 
The command '/bin/sh -c make build' returned a non-zero code: 2 
{"version": "TEST", "output": "Step 1/9 : FROM golang:1.15.3-alpine3.12 AS builder---> 9701aa6ab80a
Step 2/9 : RUN apk update && apk add gcc make git libc-dev ---> Using cache ---> 87ff8d250e2d 
Step 3/9 : ADD ./ /src/ ---> Using cache ---> ef95bb030ff7
Step 4/9 : WORKDIR /src/ ---> Using cache\n ---> 3b982c9ab004
Step 5/9 : RUN make build ---> Running in f7596e65a80b\u001b[91m# github.com/qadre/huski.go\n/usr/local/go/pkg/tool/linux_arm64/link: running gcc failed: exit status 1 
collect2: fatal error: cannot find 'ld'\ncompilation terminated.\n\n\u001b[0m\u001b[91
mmake: *** [Makefile:8: build] Error 2\n\u001b[0mRemoving intermediate container f7596e65a80b\n"}

我的构建是

build:
  @go build -race -o huski-go -ldflags="-X 'main.Version=${VERSION}'"

当我运行 ld -v 时,我得到:

@(#)程序:ld 项目:ld64-609.8 构建 15:07:46 十二月 18 2020 配置支持拱门:armv6 armv7 armv7s arm64 arm64e arm64_32 i386 x86_64 x86_64harmv6marmv7karmv7marmv7emLTO支持使用: LLVM版本12.0.0,(clang-1200.0.32.29)(静态支持27, 运行时间为 27) TAPI 支持使用:Apple TAPI 版本 12.0.0 (tapi-1200.0.23.5)

有人在使用新 Macbook 时遇到过这种情况吗?


你应该这样构建:

CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build ...

这个命令允许你在arm中构建x86镜像

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法使用新的 Mac M1 构建 Docker 映像 的相关文章

随机推荐