记一次Golang私有包拉取失败
发布于
# golang
1. 依赖拉取失败
解决方式:
方法1:如果是ssh拉取仓库
- 配一下gitlab的认证 切换到系统根目录,并创建.netrc文件
cd ~
touch .netrc
open .netrc
把这个信息写到.netrc里面
machine gitlab.xxxx.com
login gitlab的账号
password gitlab的密码
- 在需要拉取本依赖的代码的根目录执行
export GOPRIVATE=gitlab.xxxx.com
- 再安装依赖:
go get gitlab.xxxx.com/xxx/sdk@release
方法2:如果是http拉取仓库
[user]
name = test
email = towelong@gitlab.com
[http]
extraheader = PRIVATE-TOKEN: xxxxxx
[url "ssh://git@gitlab.xxxx.com/"]
insteadOf = https://gitlab.xxxx.com
2.docker中拉取私仓依赖失败导致构建失败
解决方式:
FROM golang:alpine AS builder
LABEL stage=gobuilder
ENV GOOS linux
ENV GOARCH amd64
ENV CGO_ENABLED 0
ENV GOOS linux
ENV GOARCH amd64
ENV GOPROXY https://goproxy.cn,direct
WORKDIR /build
COPY . .
RUN sh -c "[ -f go.mod ]" || exit
RUN apk update && apk add --no-cache git
RUN git config --global http.extraheader "PRIVATE-TOKEN: {{ACCESS_TOKEN}}"
RUN git config --global url."https://{{ACCOUNT}}:{{ACCESS_TOKEN}}@gitlab.xxxx.com/".insteadOf "http://gitlab.xxxx.com/"
COPY api/etc/config.yaml /app/config.yaml
COPY ip2region.xdb /app/ip2region.xdb
RUN go build -ldflags "-s -w" -o /app/app api/app.go
FROM alpine:latest
RUN set -x \
&& sed -i 's/dl-cdn.alpinelinux.org/mirrors.tuna.tsinghua.edu.cn/g' /etc/apk/repositories \
&& apk update --no-cache && apk add --no-cache ca-certificates tzdata \
&& mkdir -p /app/etc
ENV TZ Asia/Shanghai
COPY --from=builder /app /app
WORKDIR /app
CMD ["./app", "-f", "config.yaml"]
欢迎关注我的公众号: 小付同学的开发日常,原创技术文章第一时间推送。