Go 和二进制文件是我们 docker 镜像的一部分。
我尝试了所有可能的组合来构建 Go 二进制文件
export GOARCH=386 && export GOOS=linux && go build ./cmd/status
export GOARCH=amd64 && export GOOS=windows && go build ./cmd/status
$ uname -a
Linux runner-4KP_No95-project-35871-concurrent-0 44.44.444-115.233.amzn1.x86_64 #1 SMP Thu Feb 27 23:49:15 UTC 2020 x86_64 GNU/Linux
得到错误为
/pipeline/status: /pipeline/status: cannot execute binary file
来自 docker 文件的示例部分是 -
ARG GOLANG_VERSION=1.14
FROM golang:${GOLANG_VERSION} as build-helpers
ENV GOPRIVATE=code.abcd.com
RUN mkdir -p /pipeline-helpers
ADD /reusable-aspects/ci-caching/golang-preheat-cache /golang-preheat-cache
RUN cd /golang-preheat-cache && go mod download
ADD helpers/go-pipeline-commands /pipeline-helpers/
RUN cd /pipeline-helpers && CGO_ENABLED=0 GOOS=linux make
FROM alpine
RUN mkdir -p /pipeline
WORKDIR /pipeline
COPY --from=build-helpers /pipeline-helpers/commit .
COPY --from=build-helpers /pipeline-helpers/status .
RUN chmod a+x commit
RUN chmod a+x status
ENTRYPOINT ["./commit"]
CMD []
狐的传说
相关分类