访问专用代码存储库
代码库(如GitHub或GitLab,存储源代码。 通过 Code Engine,您可以添加对专用代码存储库的访问权,然后从构建引用该存储库。
创建对专用代码存储库的访问权后,可以从存储库中提取代码,进行构建,并使用 IBM Cloud® Code Engine部署应用程序或作业。
创建代码存储库访问权
创建对专用代码存储库的访问权时,您将在 Code Engine中保存凭证。 这些凭证称为 SSH 密钥。
准备工作
为代码存储库选择 SSH 密钥
对于GitHub和GitLab,你可以选择两种 SSH 密钥来连接源代码仓库。
-
与源代码存储库相关联的 SSH 密钥,此密钥只能访问您在其中注册 SSH 密钥的那些存储库。 缺省情况下,此访问是只读的,这是 Code Engine 下载源代码所需的级别。 如果需要,可以选择写访问权。 请考虑选择此选项以设置作用域限定为特定存储库的 SSH 密钥,从而仅控制对指定存储库的访问。
-
与用户关联的 SSH 密钥,例如,您自己的用户帐户或组织中可用的功能标识。 此 SSH 密钥具有来自用户帐户的存储库许可权。Code Engine 需要读访问权才能下载源代码。
由于设置作用域限定为用户帐户的 SSH 密钥可提供对完整帐户的访问权,因此在选择此选项时,请务必注意安全含义。
请勿使用安全口令创建 SSH 密钥文件,因为此操作会导致 build
命令失败。
从控制台添加专用存储库访问权
开始之前,请 创建项目。
- 在项目处于 活动 状态后,在 Code Engine "项目" 页面上单击项目的名称。
- 在“组件”页面中,单击 私钥和配置映射。
- 从“私钥和配置映射”页面中,单击 创建 以创建私钥。
- 从“创建私钥或配置映射”页面,完成以下步骤:
- 选择 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
命令。 此命令需要名称和密钥路径,并且还允许其他可选参数,例如已知主机文件的路径。 有关选项的完整列表,请参阅 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 |
已知主机文件的路径。 此值是一项安全功能,用于确保专用密钥仅用于在您先前访问的主机 (尤其是 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 私钥。