2016-12-29 49 views
0

是否可以從腳本以外的腳本自動登錄到Gitlab註冊表中?是否可以在不使用CI運行器的情況下登錄到Gitlabs容器註冊表?

我有一個自制腳本確實簡而言之下面一個非常簡單的部署過程:

  • 建集裝箱圖像
  • 推registry.gitlab.com
  • 登錄到目標服務器
  • 拉從registry.gitlab.com
  • 運行容器的容器映像

與Gitlab的註冊表中的每個交互的要求如下:

docker login registry.gitlab.com 

它會提示我的用戶名/密碼。我寧願能夠做到這樣的事情:

docker login -u <username> -p <password> registry.gitlab.com 

這樣我可以實現我的部署真正的自動化。

我已經看過Gitlab的文檔,並花了一些時間在Google上搜索,但是我發現所有引用都與使用Gitlab的CI runner有關,這對我的用例並不需要。

是我想要實現的可能嗎?

+0

['docker login'支持這些選項](https://docs.docker.com/engine/reference/commandline/login/)。 – Matt

+0

@Matt感謝您的指針。我試過了,但它似乎沒有與gitlab的註冊表認證系統 – onetimeengineer

+0

@Matt更正一起工作,它確實有效。我在註冊表url中有一個錯字。謝謝! – onetimeengineer

回答

0

絕對! 當你做一個docker login your.docker.registry.com,會發生什麼情況是:

  • 你的機器試圖登錄到泊塢窗註冊表中指定
  • 如果登錄成功,它創建於$HOME/.docker/config.json

這是一個文件在官方碼頭documentation中概述。

config.json是一個相當容易理解和很容易在shell腳本中回顯。成功登錄後,您可以查看生成的config.json

本質上講,這意味着你可以在bash腳本執行是這樣的:

echo '{"auths":{"registry.gitlab.com":{"auth":"base64encodedcredentials"}}}' > ~/.docker/config.json

一旦機器在正確的位置這個文件,它不應該提示您輸入登錄名或密碼時拉圖像。

只要記住您的用戶名和密碼以base64編碼格式存儲在此文件中。如果這讓你感到困擾,你可能需要另一組專用證書。

相關問題