第 1 章 运行构建
安装构建后,您可以创建一个 buildah
或 source-to-image
构建以供使用。您还可以删除构建不需要的自定义资源。
1.1. 创建 buildah 构建 复制链接链接已复制到粘贴板!
您可以创建一个 buildah
构建并将创建的镜像推送到目标 registry。
先决条件
- 您已在 OpenShift Container Platform 集群中安装了 Red Hat OpenShift Operator 的 Builds。
-
您已创建了
ShipwrightBuild
资源。 -
已安装
oc
CLI。 -
可选: 已安装
shp
CLI。
流程
使用其中一个 CLI 创建
Build
资源并将其应用到 OpenShift Container Platform 集群:示例: 使用
oc
CLICopy to Clipboard Copied! Toggle word wrap Toggle overflow 示例:使用
shp
CLIshp build create buildah-golang-build \ --source-url="https://github.com/shipwright-io/sample-go" --source-context-dir="docker-build" \ --strategy-name="buildah" \ --dockerfile="Dockerfile" \ --output-image="image-registry.openshift-image-registry.svc:5000/buildah-example/go-app"
$ shp build create buildah-golang-build \ --source-url="https://github.com/shipwright-io/sample-go" --source-context-dir="docker-build" \
1 --strategy-name="buildah" \
2 --dockerfile="Dockerfile" \
3 --output-image="image-registry.openshift-image-registry.svc:5000/buildah-example/go-app"
4 Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用其中一个 CLI 检查
Build
资源是否已创建:示例: 使用
oc
CLIoc get builds.shipwright.io buildah-golang-build
$ oc get builds.shipwright.io buildah-golang-build
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例:使用
shp
CLIshp build list
$ shp build list
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用其中一个 CLI 创建
BuildRun
资源并将其应用到 OpenShift Container Platform 集群:示例: 使用
oc
CLICopy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
spec.build.name
字段表示要运行的相应构建,该构建预期在同一命名空间中可用。
示例:使用
shp
CLIshp build run buildah-golang-build --follow
$ shp build run buildah-golang-build --follow
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 可选: 通过使用
--follow
标志,您可以在输出结果中查看构建日志。
使用其中一个 CLI 检查
BuildRun
资源是否已创建:示例: 使用
oc
CLIoc get buildrun buildah-golang-buildrun
$ oc get buildrun buildah-golang-buildrun
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例:使用
shp
CLIshp buildrun list
$ shp buildrun list
Copy to Clipboard Copied! Toggle word wrap Toggle overflow BuildRun
资源会创建一个TaskRun
资源,然后创建 pod 来执行构建策略步骤。
验证
所有容器完成其任务后,验证以下内容:
检查 pod 是否将
STATUS
字段显示为Completed
:oc get pods -w
$ oc get pods -w
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
NAME READY STATUS RESTARTS AGE buildah-golang-buildrun-dtrg2-pod 2/2 Running 0 4s buildah-golang-buildrun-dtrg2-pod 1/2 NotReady 0 7s buildah-golang-buildrun-dtrg2-pod 0/2 Completed 0 55s
NAME READY STATUS RESTARTS AGE buildah-golang-buildrun-dtrg2-pod 2/2 Running 0 4s buildah-golang-buildrun-dtrg2-pod 1/2 NotReady 0 7s buildah-golang-buildrun-dtrg2-pod 0/2 Completed 0 55s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 检查对应的
TaskRun
资源是否将SUCCEEDED
字段显示为True
:oc get tr
$ oc get tr
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
NAME SUCCEEDED REASON STARTTIME COMPLETIONTIME buildah-golang-buildrun-dtrg2 True Succeeded 11m 8m51s
NAME SUCCEEDED REASON STARTTIME COMPLETIONTIME buildah-golang-buildrun-dtrg2 True Succeeded 11m 8m51s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 检查对应的
BuildRun
资源是否将SUCCEEDED
字段显示为True
:oc get br
$ oc get br
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
NAME SUCCEEDED REASON STARTTIME COMPLETIONTIME buildah-golang-buildrun True Succeeded 13m 11m
NAME SUCCEEDED REASON STARTTIME COMPLETIONTIME buildah-golang-buildrun True Succeeded 13m 11m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在验证过程中,如果构建运行失败,您可以检查
BuildRun
资源中的status.failureDetails
字段,以识别 pod 或容器中发生故障的确切点。注意pod 可能会切换到
NotReady
状态,因为其中一个容器已经完成其任务。这是预期的行为。
验证镜像是否已推送到
build.spec.output.image
字段中指定的 registry。您可以运行以下命令来从可以访问内部 registry 的节点运行以下命令来拉取镜像:podman pull image-registry.openshift-image-registry.svc:5000/<project>/<image>
$ podman pull image-registry.openshift-image-registry.svc:5000/<project>/<image>
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 创建
Build
资源时使用的项目名称和镜像名称。例如,您可以使用buildah-example
作为项目名称,example-go-app
作为镜像名称。