资讯详情

解决docker 编译golang项目报错 error obtaining VCS status: exec: “git“: executable file not found ...

这个错误出现了golang版本 1.18中 运行docker编译命令:

docker build -t svc:v1.1 . 

然后报错: #10 30.64 go: missing Git command. See https://golang.org/s/gogetcmd #10 30.64 error obtaining VCS status: exec: “git”: executable file not found in $PATH #10 30.64 Use -buildvcs=false to disable VCS stamping 详细如图: 在这里插入图片描述 Dockerfile文件如下

FROM golang:alpine AS builder  WORKDIR /go/src/svc  COPY . .  RUN go env -w GO111MODULE=on \     && go env -w GOPROXY=https://goproxy.cn,direct \     && go env -w CGO_ENABLED=0 \     && go env \     && go mod tidy \     && go build -o tagging-count-svc .  FROM alpine:latest  COPY --from=0 /go/src/svc/svc ./  RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories && apk add --no-cache tzdata 

然后试着在环境变量中添加它GOFLAGS=-buildvcs=false 查看go env 再次尝试编译同样的错误。

发现主机不需要修改GOFLAGS而是参数docker容器内的go参数的环境修改。 解决方法:在Dockerfile在文件中添加一行 && go env -w GOFLAGS=-buildvcs=false 修改Dockerfile文件如下

FROM golang:alpine AS builder  WORKDIR /go/src/svc  COPY . .  RUN go env -w GO111MODULE=on \     && go env -w GOPROXY=https://goproxy.cn,direct \     && go env -w CGO_ENABLED=0 \
    && go env -w GOFLAGS=-buildvcs=false \  # 添加在这里
    && go env \
    && go mod tidy \
    && go build -o tagging-count-svc .

FROM alpine:latest

COPY --from=0 /go/src/svc/svc ./

RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories && apk add --no-cache tzdata

再次运行docker build命令即可编译成功。

标签: 耐高温抗渗碳ksc轴装电阻丝

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台