使用Dockerfile运行步骤中的git clone提示用户名/密码

时间:2018-03-27 01:30:35

标签: git docker

我正在尝试设置一个多阶段的docker构建,并且需要克隆我的源以进行初始的第一阶段构建步骤。

但是,git clone需要用户名/密码,因为存储库的路径位于私有github enterpr服务器上。在正常情况下,git会提示您输入用户名/密码。但是,git clone从Dockerfile中的RUN步骤开始,没有这样的提示,输出就是:

  

致命:无法读取' https://yourserver.com的用户名':没有此类设备或地址   命令' / bin / sh -c git clone https://yourserver.com/name/yourpath'返回非零代码:128

即使在docker构建步骤中指定了-ti标志。 如何传递用户名/密码或至少提示它?我不想将它嵌入Dockerfile中。

1 个答案:

答案 0 :(得分:3)

如果你想使用用户/密码进行git克隆,你需要做的只是

git clone https://username:password@github.com/username/repository.git

在你的情况下,它将是

RUN git clone https://username:password@github.com/username/repository.git

更好的解决方案是在没有密码的情况下创建一组私钥/公钥,并将私钥ADDCOPY创建到Dockerfile中。在这种情况下,您需要使用github注册公钥。那么简单的命令就足够了:

RUN git clone ssh://git@github.com/username/repository.git

<强>更新 我也有一个基于my answer here的想法。如果您需要使用不同的用户名/密码,可以在ARG

中设置Dockerfile
ARG USERNAME=user
ARG PASSWORD=1234

然后使用

构建您的图像
docker build --build-arg USERNAME=user --build-arg PASSWORD=1234 .`

您将至少获得一些用户输入的模拟:)