【发布时间】:2021-04-19 04:04:18
【问题描述】:
我有以下 dockerfile:
FROM golang:1.16.3 as compile
WORKDIR /app
COPY go.mod go.sum ./
RUN go mod download
COPY . .
# CGO_ENABLED for static linking library
RUN go env -w GOPRIVATE="github.com/<some_account>/*"; GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -ldflags "-X main.version=$1 -X main.build=`date -u +%Y%m%d.%H%M%S`" -o /app/server server.go
FROM scratch
#WORKDIR /
#FROM alpine:latest
#RUN apk --no-cache add ca-certificates
WORKDIR /root/
COPY --from=compile /app/server .
EXPOSE 80
EXPOSE 443
CMD ["./server"]
此文件位于我的 Golang 源代码中,我运行 docker build . 将可执行文件构建为 docker 映像。但是这段代码使用了来自 GitHub 的私有仓库的 Go 包。在第一阶段,它无法访问该私人仓库。在我的 RUN 语句中,我尝试设置 Go 环境 GOPRIVATE,但它不起作用。
ARG GOPRIVATE "github.com/<some_account>/*" 和ENV GOPRIVATE "github.com/<some_account>/*" 似乎也没有效果。
【问题讨论】:
标签: docker go dockerfile