存取專用程式碼儲存庫
程式碼儲存庫(例如GitHub或GitLab,儲存原始碼。 使用 Code Engine,您可以新增專用程式碼儲存庫的存取權,然後從建置中參照該儲存庫。
建立專用程式碼儲存庫的存取權之後,您可以從儲存庫取回程式碼、建置它,以及使用 IBM Cloud® Code Engine來部署應用程式或工作。
建立程式碼儲存庫存取權
當您建立專用程式碼儲存庫的存取權時,會將認證儲存在 Code Engine中。 這些認證稱為 SSH 密碼。
開始之前
選擇程式碼儲存庫的 SSH 金鑰
對於GitHub和GitLab,您可以選擇兩種 SSH 金鑰來連接到來源儲存庫。
-
與原始碼儲存庫相關聯的 SSH 金鑰,此金鑰只能存取您在其中登錄 SSH 金鑰的那些儲存庫。 依預設,此存取權是唯讀的,這是 Code Engine 下載原始碼所需的層次。 必要的話,您可以選取寫入權。 請考慮選擇這個選項來設定 SSH 金鑰,使其以特定儲存庫為範圍,以便只控制對指定儲存庫的存取權。
-
與使用者相關聯的 SSH 金鑰,例如,您自己的使用者帳戶或組織中可用的功能 ID。 此 SSH 金鑰具有來自使用者帳戶的儲存庫許可權。Code Engine 需要讀取權才能下載原始碼。
因為設定以使用者帳戶為範圍的 SSH 金鑰可讓您存取完整帳戶,所以當您選擇此選項時,請務必注意安全含意。
請勿使用安全通行詞組來建立 SSH 金鑰檔,因為此動作會導致 build
指令失敗。
從主控台新增專用儲存庫存取權
開始之前,請 建立專案。
- 在專案處於 作用中 狀態之後,請在 Code Engine「專案」頁面上按一下專案的名稱。
- 從「元件」頁面中,按一下 密鑰及配置對映。
- 從「密鑰及配置對映」頁面中,按一下 建立 以建立密鑰。
- 從「建立密鑰或 configmap」頁面中,完成下列步驟:
- 選取 SSH 密碼,然後按 下一步。
- 提供名稱; 例如
mysecret-ssh
。 - 新增此密鑰的 SSH 私密金鑰。
- 按一下建立以建立秘密。
既然已從主控台建立密鑰,請移至「密鑰及配置對映」頁面,以檢視已定義密鑰及配置對映的清單。 您可以套用過濾器來自訂清單以符合您的需求。
您可以在建置映像檔時建立存取權。
使用 CLI 新增專用儲存庫存取權
從 CLI 版本 1.42.0 開始,在 CLI 中定義和處理秘密會統一在 secret
命令群組下。 請參閱 ibmcloud ce secret
指令。 使用 --format
選項指定秘密的類別,例如
basic_auth
, generic
, hmac
, ssh
, tls
,或 registry
。 雖然您可以繼續使用 repo
命令群組的同時,利用統一的 secret
命令群組的優勢。 若要建立一個使用
SSH 金鑰存取服務的秘訣,例如驗證 Git 儲存庫,如 GitHub 或 GitLab,,請使用 ibmcloud ce secret create --format ssh
指令。 SSH 秘密也可用作 Git 儲存庫存取秘 密。 若要瞭解在 Code Engine 中處理機密的更多資訊,請參閱處理
機密。
SSH 秘密包含存取私有資源庫的憑證,該資源庫包含用於建立容器影像的原始程式碼。 SSH 秘密也可用作 Git 儲存庫存取秘 密。
若要使用 CLI 來建立 SSH 密鑰,請使用 secret create --format ssh
指令。 這個指令需要名稱和金鑰路徑,也容許其他選用引數,例如已知 hosts 檔的路徑。 如需選項的完整清單,請參閱 ibmcloud ce secret create --format ssh
指令。
例如,下列指令會建立一個稱為 myrepossh
的 SSH 密鑰,該密鑰至 github.com
中的儲存庫,該儲存庫使用您在系統上預設位置找到的個人 SSH 私密金鑰。
Mac OS 或 Linux®
ibmcloud ce secret create --format ssh --name myrepossh --key-path $HOME/.ssh/id_rsa --known-hosts-path $HOME/.ssh/known_hosts
Windows
ibmcloud ce secret create --format ssh --name myrepossh --key-path "%HOMEPATH%\.ssh\id_rsa" --known-hosts-path "%HOMEPATH%\.ssh\known_hosts"
下表彙總在此範例中與 repo create
指令搭配使用的選項。 如需指令及其選項的相關資訊,請參閱 ibmcloud ce repo create
指令。
選項 | 說明 |
---|---|
--name |
ssh 密碼的名稱。 請使用專案內唯一的名稱。 此值是必要項目。 -名稱必須以小寫英數字元開頭及結尾。 -名稱必須是 253 個字元或更少,且可以包含小寫字母、數字、句點 (.) 及連字號 (-)。 |
--key-path |
未加密私密 SSH 金鑰的本端路徑。 如果您使用個人私人 SSH 金鑰,則此檔案通常位於 $HOME/.ssh/id_rsa ( Mac OS 或 Linux ) 或 %HOMEPATH%.ssh\id_rsa (Windows)。 這是必要值。 |
--known-hosts-path |
已知 hosts 檔的路徑。 此值是安全特性,可確保私密金鑰僅用於在您先前存取的主機 (特別是 GitHub 或 GitLab 主機) 進行鑑別。 此檔案通常位於 $HOME/.ssh/known_hosts ( Mac OS 或 Linux ) 或 %HOMEPATH%.ssh\known_hosts (Windows)。 |
參照建置中的專用 Git 儲存庫
從主控台建置映像檔時,您可以參照現有的存取權或建立存取權。
從主控台參照建置中的專用 Git 儲存庫
如果要在建置中參照專用 Git 儲存庫,
- 移至 Code Engine 儀表板。
- 選取專案 (或 建立一個)。
- 從專案頁面中,按一下 映像檔建置。
- 從 映像檔建置 標籤中,按一下 建立。
- 若要指定私人儲存庫並新增存取權限,請在程式碼儲存庫 URL 欄位中輸入儲存庫的 URL,然後選擇現有的程式碼儲存庫存取權限或 建立存取權限。
- 完成指定建置的資訊,然後按一下 完成。
如需建置映像檔的相關資訊,請參閱 建置容器映像檔。
程式碼 repo URL 必須是 SSH URL,例如 git@github.com:IBM/CodeEngine.git
,而不是 HTTPS URL,例如 https://github.ibm.com/codeengine/ui
。
使用 CLI 在建置中參照 SSH 密鑰
若要在建置中使用 SSH 密鑰,請在執行 build create
或 build update
指令時使用 --git-repo-secret
選項。 SSH 秘密也可用作 Git 儲存庫存取秘 密。
如果您有現有的建置,則可以使用 build update
指令來更新它。
ibmcloud ce build update --name mybuild --git-repo-secret myrepossh
如果您想要建立新的建置,請參閱 使用 CLI 建立建置配置。
Git 儲存庫存取權的後續步驟
建立 SSH 密鑰以存取 Git 儲存庫之後,您可以從專用儲存庫中的原始碼 建置映像檔。 當您使用 --git-repo-secret
選項執行 build create
指令時,請指定 SSH 密鑰。