IBM Cloud Docs
创建用于从专用存储库中拉取源的构建配置

创建用于从专用存储库中拉取源的构建配置

如果源位于专用存储库中,请使用包含有关从专用存储库中提取源的位置的信息的设置来创建构建配置。 对于构建输出,您可以选择指定注册表详细信息以及注册表私钥,以访问注册表中的已构建映像。 或者,您可以选择让 Code Engine 负责从源构建映像,并将该映像存储在 IBM Cloud Container Registry中。 对于这种情况,您不需要指定注册表私钥或映像注册表的位置。

创建构建配置不会创建映像,但会创建用于构建映像的配置。 然后,必须运行引用构建配置的构建以创建映像。 在运行构建之前,不会验证构建配置或使用构建配置来创建映像。 构建配置支持映像的多个后续构建,例如,将更改应用于源存储库时。

您可以选择通过使用 .ceignore 文件来忽略源代码中的某些文件模式,该文件的行为与 .gitignore 文件类似。 例如,node.js 应用程序的 .ceignore 文件的条目可能包括 node_modules.npm。 有关要忽略的更多样本文件模式,请参阅 GitHub.gitignore 存储库

从控制台创建构建配置 (专用存储库)

  1. 转至 Code Engine 仪表板

  2. 选择在其中添加了容器注册表的项目。

  3. 在项目页面中,单击 映像构建

  4. 映像构建 选项卡中,单击 创建。 此时将打开 指定构建详细信息 侧面板,您可以在其中输入构建的详细信息。

  5. 部分中,输入构建的名称,源存储库的 URL 以及代码存储库访问权。

    • 如果您的代码位于专用存储库中,请将 SSH URL 用于代码存储库 URL,然后选择现有 SSH 密钥的名称或 创建 SSH 密钥。 SSH URL 的示例为 git@github.com:IBM/CodeEngine.git
    • (可选) 选择源分支名称。 如果未提供分支名称,并且将该字段留空,那么 Code Engine 将自动使用指定存储库的缺省分支。 您可以输入任何其他分支名称,标记或落实标识。

    单击下一步以继续。

  6. 策略 部分中,选择要使用的 策略

    • 如果选择 Dockerfile,那么还可以指定 Dockerfile 的备用路径。
    • 构建资源下选择构建的大小。

    单击 下一步 以前进到最后一个部分。

  7. 输出 部分中,输入容器映像的详细信息。

    • 选择现有注册表私钥,或者单击 创建注册表私钥 以添加新的注册表私钥。
    • 如果要将映像构建到帐户中的 Container Registry 实例,那么可以选择 Code Engine managed secret 并 Code Engine 为您创建和管理私钥。
    • 然后,选择要构建的映像的名称空间,存储库和标记。 您可以选择 Code Engine 在 Container Registry 中为您创建和管理名称空间。
    • 如果您的映像存在于 Container Registry中,那么可以从现有映像中进行选择,或者输入新的存储库或标记。
  8. 单击 完成 以完成构建的创建。

创建构建配置后,必须 运行构建 以创建映像文件。 创建映像文件后,可以 部署应用程序 或使用新构建的映像文件 运行作业

使用 CLI (专用存储库) 创建构建配置

要使用 CLI 创建构建配置,请使用 build create 命令。 有关选项的完整列表,请参阅 ibmcloud ce build create 命令。

使用 build create 命令,您可以选择让 Code Engine 负责从源构建映像,并将该映像存储在 IBM Cloud Container Registry中。 对于此 自动访问 情况,您不需要指定注册表私钥或映像注册表的位置。 或者,您可以指定构建映像输出的位置并提供注册表私钥,以便 Code Engine 可以访问构建结果并将其推送到注册表。

使用 CLI 创建构建配置 (具有专用存储库源和对注册表的自动访问权)

在此场景中,Code Engine 从专用存储库源构建映像,并自动将该映像上载到 IBM Cloud Container Registry。 请参阅 设置映像注册表的权限,以获取有关设置 Code Engine 自动访问 Container Registry中的这些映像所需的许可权的更多信息。

准备工作

创建构建配置以从专用存储库构建映像,并让 Code Engine 自动存储和访问该映像。 例如,以下 build create 命令创建名为 helloworld-build-private 的构建配置,该构建配置从专用 Git 存储库 https://github.com/myprivaterepo/builds 构建,并使用 buildpacks 策略和 medium 构建大小。Code Engine 自动将映像上载到 IBM Cloud Container Registry。 此外,由于未使用 --commit 选项指定存储库的分支名称,因此 Code Engine 会自动使用指定存储库的缺省分支,即此 Git 存储库的 main。 通过不指定映像注册表或注册表私钥的位置,Code Engine 将构建输出推送到具有自动访问权的 IBM Cloud Container Registry。

由于提供的 Git 存储库是专用存储库,因此访问权需要 Git 存储库私钥。 因此,您指定的 --source 必须使用 SSH 协议,例如 git@github.com:myprivaterepo/builds.git--source 的值不得使用 httphttps 格式。

ibmcloud ce build create --name helloworld-build-private --source git@github.com:myprivaterepo/builds.git --context-dir /hello --strategy buildpacks --git-repo-secret myrepo

创建构建配置后,必须 运行构建 以创建映像文件。 创建映像文件后,可以 部署应用程序 或使用新构建的映像文件 运行作业

使用 CLI 创建构建配置 (具有专用存储库源和用户提供的对注册表的访问权)

在此场景中,Code Engine 使用您提供的 Git 存储库私钥从专用存储库源构建映像,然后使用您提供的注册表访问权将该映像上载到容器注册表。

准备工作

创建构建配置以从专用存储库构建映像,并为具有注册表私钥的构建输出指定映像注册表的位置。 使用 build create 命令,指定 --image 选项以提供映像注册表的位置,并指定 --registry-secret 选项以访问注册表。 例如,以下命令创建名为 helloworld-build-private 的构建配置,该构建配置从专用 Git 存储库 https://github.com/myprivaterepo/builds 构建,使用 buildpacks 策略和 medium 构建大小,并使用 myregistry 中定义的注册表密钥将映像存储到 us.icr.io/mynamespace/codeengine-helloworld

由于提供的 Git 存储库是专用存储库,因此访问权需要 Git 存储库私钥。 因此,您指定的 --source 必须使用 SSH 协议,例如 git@github.com:myprivaterepo/builds.git--source 的值不得使用 httphttps 格式。

在此示例中,该命令使用缺省 medium 构建大小。 由于未使用 --commit 选项指定存储库的分支名称,因此 Code Engine 会自动使用指定存储库的缺省分支。

ibmcloud ce build create --name helloworld-build-private --image us.icr.io/mynamespace/codeengine-helloworld --registry-secret myregistry --source git@github.com:myprivaterepo/builds.git --context-dir /hello --strategy buildpacks --git-repo-secret myrepo

创建构建配置后,必须 运行构建 以创建映像文件。 创建映像文件后,可以 部署应用程序 或使用新构建的映像文件 运行作业