为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Go
小怪兽爱吃肉 2022-12-13 16:14:28
我想从 bitbucket 下载私有存储库,但出现一些错误fatal: could not read Username for 'https://bitbucket.org': terminal prompts disabled这是我的 dockerfileFROM golang:1.17 as buildRUN 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 tidyRUN go build -o user-management
查看完整描述

3 回答

?
桃花长相依

TA贡献1860条经验 获得超8个赞

我认为为此使用 ssh 密钥是最干净的。您实际上可以告诉 docker 使用本地 ssh 代理的配置。您需要为此启用 buildkit。


eval "$(ssh-agent -s)"

ssh-add /path/to/ssh-key

docker build --ssh default --tag example .

在您的 Dockerfile 中,您需要将其安装在特定的运行指令上:


RUN --mount=type=ssh go mod download

这需要您将相同的 ssh 密钥添加到您的私有 bitbucket 存储库,以便您可以使用它来下载依赖项。


有更多方法可以在运行指令的生命周期内安装秘密。


查看完整回答
反对 回复 2022-12-13
?
潇潇雨雨

TA贡献1833条经验 获得超4个赞

对我来说帮助添加“机器 github.com 登录 USERNAME 密码 APIKEY”到 $HOME/.netrc


我的文件:


FROM golang:latest as builder

ARG GIT_CONFIG

WORKDIR /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/.netrc


FROM scratch

COPY --from=builder /builder/main/ .

也许它会对你有所帮助。


查看完整回答
反对 回复 2022-12-13
?
慕尼黑8549860

TA贡献1818条经验 获得超11个赞

永远不要那样做,你需要在命令之外下载 repo docker build,并COPY在构建时用于将这些文件传输到图像中



查看完整回答
反对 回复 2022-12-13
  • 3 回答
  • 0 关注
  • 134 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信