我没有找到其他类似的问题,但如果有涵盖以下所有元素的问题,请告诉我(远程访问主机、在其中设置Docker容器、使用Github 2FA访问私人存储库)。
最近我加入了一家公司,我从家里的笔记本电脑远程ssh访问主机。在这些机器上,我的同事们每个人都设置了一个Docker容器,而我也是(第一次)。
话虽如此,我使用以下流程来实现(a)推送到我们公司的私有Github存储库(假设为https://github.com/my_company_name/my_company_repo),以及(b)从我们公司的私有Github存储库克隆和安装(假设为https://github.com/my_company_name/colleague_repo)。
对于(a),我首先进入Docker容器内的终端,然后进入存储库目录,从我的仓库中git fetch
,然后(添加/提交等后)git push
,此时我必须填写用户名和密码。密码不能用在这里;我必须填写我的个人访问令牌(我创建了具有读取和写入权限的令牌)。
对于(b),我首先从同事的存储库git clone
,然后必须输入用户名和密码。(同样,需要个人访问令牌代替密码。)然后我通过pip install -e
按名称安装存储库。
我想通过在我的Dockerfile中使用适当的配置来避免不断提供我的凭据。(因此对于(a),我只想弹出我的终端并git push <origin> <master>
就可以了。)我还想在Dockerfile本身中克隆和安装我的同事的存储库(即在Docker构建中执行所有克隆和安装操作),因为每次都有一组非常特定的公司存储库要安装--但是如您所见,认证无法工作。
我尝试添加以下行:
RUN git config --global user.name <my_username>
RUN git config --global user.password <personal_access_token>
RUN pip install -e git+https://github.com/my_company_name/colleague_repo
我已经将我的密码添加到 Dockerfile 中(也尝试在第二行中使用实际密码)。但没有成功 -- 收到了身份验证失败的消息。
有人能帮忙吗?
user.password
不是git配置键。你尝试过https://<user>:<password>@github.com/blah_blah
吗? - iBug<password>
是指PAT吗?这不会使得Dockerfile在主机上公开(对我的同事)有所顾虑吗? - Mobeus Zoomlibsecret
可以将Git凭证保密(例如,https://www.softwaredeveloper.blog/git-credential-storage-libsecret with HTTPS authentication),但我不确定如何将其放入我的Dockerfile中。 - Mobeus Zoom