簡體   English   中英

如何將憑證烘焙到碼頭圖像中為git?

[英]How to bake credential into docker image for git?

這實際上是我之前的一個問題

我正在嘗試使用docker來托管個人記筆記Web服務,並希望備份服務生成的數據(我的筆記)。 目前我計划使用git來提交,拉取和推送到我的目的的存儲庫。

要執行git pull and push,我的docker鏡像需要托管我的憑據。 實現這一目標的最簡單但最安全的方法是什么?

到目前為止我做了什么:

  • 我選擇Alpine作為我服務形象的基本形象。
  • 因為我只需要git的憑據,我認為將git憑證助手放入圖像可能會解決我的問題。 我可以在構建期間將憑據保存到幫助程序,並在運行時使用它們。
  • 根據這篇文章 ,我用libsecret搜索了一段時間並決定使用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從這里開始 ),但這次沒有運氣。 錯誤仍在繼續。

最后,我想知道:

  1. 我是在正確的方向(使用git憑證助手)來實現我的目標嗎?
  2. 如果是這樣,我該如何解決X11問題?
  3. 有沒有其他快速,干凈的方法來備份具有版本控制的docker中的數據?

如果您的git提供程序支持使用公鑰的ssh,我認為最簡單的方法是切換到它們。 您也無需復制密碼。

你需要:

這取決於您運行git-credential-libsecret的位置:您需要將其安裝在映像/容器中,而不是安裝在主機上。

請注意,另一個選項是使用卷(請參閱我之前的問題的答案 ),在這種情況下, git只能安裝在主機上。

但是在這里,你可以直接在你的圖像中使用git,這意味着, 就像在這個Dockerfile中一樣 ,你需要在你的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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM