存取專用程式碼儲存庫
程式碼儲存庫 (例如 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
、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,然後選取現有程式碼儲存庫存取權或 建立存取權。
- 完成指定建置的資訊,然後按一下 完成。
如需建置映像檔的相關資訊,請參閱 建置容器映像檔。
程式碼儲存庫 URL 必須是 SSH URL (例如 git@github.com:IBM/CodeEngine.git
),而不是 https://github.ibm.com/codeengine/ui
之類的 HTTP URL。
使用 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 密鑰。