Linux 如何将凭证烘焙到git的docker映像中?
这实际上是我之前的一个问题 我正在尝试使用docker托管一个个人笔记web服务,并希望备份该服务生成的数据(我的笔记)。 目前,我计划使用git提交、拉取和推送到存储库 要执行git拉和推,我的docker映像需要承载我的凭据。实现这一点最简单但安全的方法是什么 到目前为止我所做的:Linux 如何将凭证烘焙到git的docker映像中?,linux,git,authentication,docker,alpine,Linux,Git,Authentication,Docker,Alpine,这实际上是我之前的一个问题 我正在尝试使用docker托管一个个人笔记web服务,并希望备份该服务生成的数据(我的笔记)。 目前,我计划使用git提交、拉取和推送到存储库 要执行git拉和推,我的docker映像需要承载我的凭据。实现这一点最简单但安全的方法是什么 到目前为止我所做的: 我选择Alpine作为我的服务映像的基础映像 因为我只需要git的凭据,所以我认为将git凭据助手放入映像中可以解决我的问题。我可以在构建时将凭据保存到帮助器,并在运行时使用它们 我在谷歌上搜索了一会儿,并决定
- 我选择
作为我的服务映像的基础映像李>Alpine
- 因为我只需要git的凭据,所以我认为将git凭据助手放入映像中可以解决我的问题。我可以在构建时将凭据保存到帮助器,并在运行时使用它们
- 我在谷歌上搜索了一会儿,并决定使用
作为我的git凭证助手,据介绍李>libsecret
- 我已经安装了
,并将我的git凭证帮助程序设置为libsecret
git凭证libsecret
git-credential-libsecret
正常工作。以下是我遇到的几个问题:
- 首先,我测试了
,得到以下错误:git-credential-libsecret-get
CRITICAL**:无法连接到特勤局:无法生成没有机器id的消息总线:无法加载/var/lib/dbus/machine id或/etc/machine id:无法打开文件*/var/lib/dbus/machine id*:没有此类文件或目录
- 我(可能?)通过安装
并运行dbus
dbus uuidgen>/var/lib/dbus/machine id
- 我(可能?)通过安装
- 然后我尝试再次运行
。这一次,它报告说:git-credential-libsecret-get
CRITICAL**:无法连接到特勤局:无法在没有X11$DISPLAY的情况下自动启动D-Bus
- 我试图安装
并运行dbus-x11
(),但这次没有成功。错误还在继续dbus-launch--sh syntax
- 我试图安装
这取决于您运行git credential libsecret的位置:您需要将其安装在映像/容器中,而不是主机上 请注意,另一个选项是使用卷(请参阅),在这种情况下,
git
只能安装在主机上
但在这里,您可以在图像中直接使用git,这意味着您需要在Dockerfile中包含:
RUN apt-get update -y &&
apt-get install --no-install-recommends -y libsecret-1-0 git
如果您的git提供商支持使用公钥的ssh,我认为最简单的方法是切换到它们。您也不必复制您的密码 您需要:
- 将ssh客户端添加到docker映像
- 并将其复制到图像中。不需要
部分ssh代理
秘密工具
。运行secret tool
也会出现X11错误。您还可以使用一个.netrc
,它由Git(通过curl)支持,没有任何依赖关系。您认为,在泄漏时,哪个更安全或者对我的整体隐私造成的损害更小?在映像V.S.中放置SSH私钥,使用git凭据存储在映像中保存纯文本accout密码对。