如何使用 bitbucket 和 golang 项目从 Dockerfile 下载私有仓库

我想从 bitbucket 下载私有存储库,但出现一些错误


fatal: could not read Username for 'https://bitbucket.org': terminal prompts disabled

这是我的 dockerfile


FROM golang:1.17 as build


RUN apt update && apt upgrade -y && \

  apt install -y git \

  make openssh-client 


WORKDIR /src 


COPY . . 



RUN git config --global url."https://username:app_password@bitbucket.org".insteadOf "https://bitbucket.org"

RUN go mod tidy


RUN go build -o user-management


小怪兽爱吃肉
浏览 137回答 3
3回答

桃花长相依

我认为为此使用 ssh 密钥是最干净的。您实际上可以告诉 docker 使用本地 ssh 代理的配置。您需要为此启用 buildkit。eval "$(ssh-agent -s)"ssh-add /path/to/ssh-keydocker build --ssh default --tag example .在您的 Dockerfile 中,您需要将其安装在特定的运行指令上:RUN --mount=type=ssh go mod download这需要您将相同的 ssh 密钥添加到您的私有 bitbucket 存储库,以便您可以使用它来下载依赖项。有更多方法可以在运行指令的生命周期内安装秘密。

潇潇雨雨

对我来说帮助添加“机器 github.com 登录 USERNAME 密码 APIKEY”到 $HOME/.netrc我的文件:FROM golang:latest as builderARG GIT_CONFIGWORKDIR /builder/ADD . /builder/RUN "${GIT_CONFIG}" > $HOME/.netrc&& CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o main ./cmd/main.go&& rm -f $HOME/.netrcFROM scratchCOPY --from=builder /builder/main/ .也许它会对你有所帮助。

慕尼黑8549860

永远不要那样做,你需要在命令之外下载 repo docker build,并COPY在构建时用于将这些文件传输到图像中
打开App,查看更多内容
随时随地看视频慕课网APP