这实际上是我之前one的问题。
我正在尝试使用docker来托管个人记笔记Web服务,并希望备份服务生成的数据(我的笔记)。 目前我计划使用git来提交,拉取和推送到我的目的的存储库。
要执行git pull and push,我的docker镜像需要托管我的凭据。实现这一目标的最简单但最安全的方法是什么?
到目前为止我做了什么:
Alpine
作为我服务图片的基本图片。 libsecret
作为我的git凭证助手。 libsecret
并将我的git凭证助手设为git-credential-libsecret
但是,到目前为止,我无法使git-credential-libsecret
功能正常。以下是我遇到的一些问题:
首先,我测试了git-credential-libsecret get
并收到以下错误:
CRITICAL **: could not connect to Secret Service: Cannot spawn a message bus without a machine-id: Unable to load /var/lib/dbus/machine-id or /etc/machine-id: Failed to open file */var/lib/dbus/machine-id*: No such file or directory
dbus
并运行dbus-uuidgen > /var/lib/dbus/machine-id
然后我尝试再次运行git-credential-libsecret get
。这一次,它报告说:
CRITICAL **: could not connect to Secret Service: Cannot autolaunch D-Bus without X11 $DISPLAY
dbus-x11
并运行dbus-launch --sh-syntax
(from here),但这次没有运气。错误仍在继续。总之,我想知道:
答案 0 :(得分:2)
如果您的git提供程序支持使用公钥的ssh,我认为最简单的方法是切换到它们。您也无需复制密码。
你需要:
ssh-agent
部分答案 1 :(得分:1)
这取决于您运行git-credential-libsecret的位置:您需要将其安装在映像/容器中,而不是安装在主机上。
请注意,另一个选项是使用卷(请参阅my answer to your previous question),在这种情况下,git
只能安装在主机上。
但是在这里,你可以直接在你的图片中使用git,这意味着你需要在你的Dockerfile中拥有as in this Dockerfile:
RUN apt-get update -y &&
apt-get install --no-install-recommends -y libsecret-1-0 git
https://github.com/electron-userland/electron-builder/blob/master/docker/base/Dockerfile