使用 M2 Macbook,在 platform linux/amd64 下使用 golang 1.20 进行构建时会出现分段错误
环境
-
- Apple M2 13.4.1(22F82)
-
- Rancher Desktop Version: 1.8.1
- golang 1.20 (Dockerfile)
请将以下内容以中文进行释义:
在构建带有 –platform linux/amd64 选项的以下 Dockerfile 时,发生了分段错误。
docker build ./ -t samle:latest --platform linux/amd64
FROM golang:1.20 AS builder
WORKDIR /build
COPY . ./
RUN go mod download
RUN go build -trimpath -ldflags '-w -s' -o ./main
ENTRYPOINT ["/build/main"]
错误内容 (è cuò
# runtime/cgo: gcc: signal: segmentation fault (core dumped)
解决方案
通过将CGO_ENABLED设置为0来解决问题,不再出现。
FROM golang:1.20 AS builder
ENV CGO_ENABLED=0
WORKDIR /build
COPY . ./
RUN go mod download
RUN go build -trimpath -ldflags '-w -s' -o ./main
ENTRYPOINT ["/build/main"]