Builds の操作
第1章 Builds の管理 リンクのコピーリンクがクリップボードにコピーされました!
Builds をインストールしたら、buildah、source-to-image、または buildpacks を使用してビルドを作成できます。Open Container Initiative (OCI) を使用してビルドを作成することもできます。ビルドに必要のないカスタムリソースを削除することもできます。
1.1. buildah ビルドの作成 リンクのコピーリンクがクリップボードにコピーされました!
buildah ビルドを作成し、作成したイメージをターゲットレジストリーにプッシュできます。
前提条件
- OpenShift Container Platform クラスターに Builds for Red Hat OpenShift Operator がインストールされている。
-
ocCLI がインストールされている。 -
オプション:
shpCLI がインストールされている。
手順
Buildリソースを作成し、次のいずれかの CLI を使用して OpenShift Container Platform クラスターに適用します。例:
ocCLI の使用Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- ソースコードが配置される場所。
- 2
- コンテナーの構築に使用するビルドストラテジー。
- 3
- ビルドストラテジーで定義されるパラメーター。
dockerfileストラテジーパラメーターの値を設定するには、出力イメージの構築に必要な Dockerfile の場所を指定します。 - 4
- ビルドイメージがプッシュされる場所。この手順例では、ビルドされたイメージが OpenShift Container Platform クラスターの内部レジストリーにプッシュされます。
buildah-exampleは現在のプロジェクトの名前です。イメージのプッシュを許可するために、指定されたプロジェクトが存在することを確認します。
例:
shpCLI の使用shp build create buildah-golang-build \ --source-url="https://github.com/redhat-openshift-builds/samples" --source-context-dir="buildah-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/redhat-openshift-builds/samples" --source-context-dir="buildah-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 - 1
- ソースコードが配置される場所。
- 2
- コンテナーの構築に使用するビルドストラテジー。
- 3
- ビルドストラテジーで定義されるパラメーター。
dockerfileストラテジーパラメーターの値を設定するには、出力イメージの構築に必要な Dockerfile の場所を指定します。 - 4
- ビルドイメージがプッシュされる場所。この手順例では、ビルドされたイメージが OpenShift Container Platform クラスターの内部レジストリーにプッシュされます。
buildah-exampleは現在のプロジェクトの名前です。イメージのプッシュを許可するために、指定されたプロジェクトが存在することを確認します。
Buildリソースが CLI のいずれかを使用して作成されていることを確認します。例:
ocCLI の使用oc get builds.shipwright.io buildah-golang-build
$ oc get builds.shipwright.io buildah-golang-buildCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例:
shpCLI の使用shp build list
$ shp build listCopy to Clipboard Copied! Toggle word wrap Toggle overflow BuildRunリソースを作成し、次のいずれかの CLI を使用して OpenShift Container Platform クラスターに適用します。例:
ocCLI の使用Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
spec.build.nameフィールドは、実行するそれぞれのビルドを示し、同じ namespace で使用できる必要があります。
例:
shpCLI の使用shp build run buildah-golang-build --follow
$ shp build run buildah-golang-build --follow1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- オプション:
--followオプションのフラグを使用すると、出力結果のビルドログを表示できます。
次のいずれかのコマンドを実行して、
BuildRunリソースが作成されているかどうかを確認します。例:
ocCLI の使用oc get buildrun buildah-golang-buildrun
$ oc get buildrun buildah-golang-buildrunCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例:
shpCLI の使用shp buildrun list
$ shp buildrun listCopy to Clipboard Copied! Toggle word wrap Toggle overflow BuildRunリソースはTaskRunリソースを作成し、その後ビルドストラテジーの手順を実行する Pod を作成します。
検証
すべてのコンテナーがタスクを完了したら、以下を確認します。
Pod で
STATUSフィールドがCompletedとして表示されるかどうかを確認します。oc get pods -w
$ oc get pods -wCopy 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 55sCopy to Clipboard Copied! Toggle word wrap Toggle overflow それぞれの
TaskRunリソースにSUCCEEDEDフィールドがTrueと表示されているかどうかを確認します。oc get tr
$ oc get trCopy 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 8m51sCopy to Clipboard Copied! Toggle word wrap Toggle overflow それぞれの
BuildRunリソースにSUCCEEDEDフィールドがTrueと表示されているかどうかを確認します。oc get br
$ oc get brCopy 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 11mCopy to Clipboard Copied! Toggle word wrap Toggle overflow 検証中にビルドの実行が失敗した場合は、
BuildRunリソースのstatus.failureDetailsフィールドをチェックして、Pod またはコンテナー内で失敗が発生した正確なポイントを特定できます。注記コンテナーの 1 つがタスクを完了したため、Pod が
NotReady状態に切り替わる可能性があります。これは想定される動作です。
build.spec.output.imageフィールドで指定されたレジストリーにイメージがプッシュされたかどうかを検証します。内部レジストリーにアクセスできるノードから次のコマンドを実行して、イメージのプルを試みることができます。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をプロジェクト名として、sample-go-appをイメージ名として使用できます。
1.1.1. ネットワークが制限された環境での buildah ビルドの作成 リンクのコピーリンクがクリップボードにコピーされました!
buildah ビルドストラテジーに必要なイメージのミラーリングを行い、ネットワーク制限環境で buildah ビルドを作成できます。
前提条件
- クラスターが buildah ビルドを作成するのに使用できる git ソースに接続し、操作できる。
手順
以下のコマンドを実行して、
buildahビルドストラテジーに必要なイメージのミラーリングを行います。oc image mirror --insecure -a <registry_authentication> registry.redhat.io/ubi8/buildah@sha256:1c89cc3cab0ac0fc7387c1fe5e63443468219aab6fd531c8dad6d22fd999819e <mirror_registry>/<repo>/ubi8_buildah
$ oc image mirror --insecure -a <registry_authentication> registry.redhat.io/ubi8/buildah@sha256:1c89cc3cab0ac0fc7387c1fe5e63443468219aab6fd531c8dad6d22fd999819e <mirror_registry>/<repo>/ubi8_buildahCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 「buildah ビルドの作成」セクションで説明されている手順を実行します。
1.2. source-to-image ビルドの作成 リンクのコピーリンクがクリップボードにコピーされました!
source-to-image ビルドを作成し、作成したイメージをカスタム Quay リポジトリーにプッシュできます。
前提条件
- OpenShift Container Platform クラスターに Builds for Red Hat OpenShift Operator がインストールされている。
-
ocCLI がインストールされている。 -
オプション:
shpCLI がインストールされている。
手順
Buildリソースを作成し、次のいずれかの CLI を使用して OpenShift Container Platform クラスターに適用します。例:
ocCLI の使用Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- ソースコードが配置される場所。
- 2
- コンテナーの構築に使用するビルドストラテジー。
- 3
- ビルドストラテジーで定義されるパラメーター。
builder-imageストラテジーパラメーターの値を設定するには、出力イメージのビルドに必要なビルダーイメージの場所を指定します。 - 4
- ビルドイメージがプッシュされる場所。ビルドされたイメージをカスタム Quay.io リポジトリーにプッシュできます。
repoは、有効な Quay.io 組織または Quay ユーザー名に置き換えます。 - 5
- コンテナーイメージをプッシュするための認証情報を保存するシークレット名。認証用に
docker-registryタイプのシークレットを生成するには、「コンテナーレジストリーへの認証」を参照してください。
例:
shpCLI の使用Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- ソースコードが配置される場所。
- 2
- コンテナーの構築に使用するビルドストラテジー。
- 3
- ビルドストラテジーで定義されるパラメーター。
builder-imageストラテジーパラメーターの値を設定するには、出力イメージのビルドに必要なビルダーイメージの場所を指定します。 - 4
- ビルドイメージがプッシュされる場所。ビルドされたイメージをカスタム Quay.io リポジトリーにプッシュできます。
repoは、有効な Quay.io 組織または Quay ユーザー名に置き換えます。 - 5
- コンテナーイメージをプッシュするための認証情報を保存するシークレット名。認証用に
docker-registryタイプのシークレットを生成するには、「コンテナーレジストリーへの認証」を参照してください。
Buildリソースが CLI のいずれかを使用して作成されていることを確認します。例:
ocCLI の使用oc get builds.shipwright.io s2i-nodejs-build
$ oc get builds.shipwright.io s2i-nodejs-buildCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例:
shpCLI の使用shp build list
$ shp build listCopy to Clipboard Copied! Toggle word wrap Toggle overflow BuildRunリソースを作成し、次のいずれかの CLI を使用して OpenShift Container Platform クラスターに適用します。例:
ocCLI の使用Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
spec.build.nameフィールドは、実行するそれぞれのビルドを示し、同じ namespace で使用できる必要があります。
例:
shpCLI の使用shp build run s2i-nodejs-build --follow
$ shp build run s2i-nodejs-build --follow1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- オプション:
--followオプションのフラグを使用すると、出力結果のビルドログを表示できます。
次のいずれかのコマンドを実行して、
BuildRunリソースが作成されているかどうかを確認します。例:
ocCLI の使用oc get buildrun s2i-nodejs-buildrun
$ oc get buildrun s2i-nodejs-buildrunCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例:
shpCLI の使用shp buildrun list
$ shp buildrun listCopy to Clipboard Copied! Toggle word wrap Toggle overflow BuildRunリソースはTaskRunリソースを作成し、その後ビルドストラテジーの手順を実行する Pod を作成します。
検証
すべてのコンテナーがタスクを完了したら、以下を確認します。
Pod で
STATUSフィールドがCompletedとして表示されるかどうかを確認します。oc get pods -w
$ oc get pods -wCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME READY STATUS RESTARTS AGE s2i-nodejs-buildrun-phxxm-pod 2/2 Running 0 10s s2i-nodejs-buildrun-phxxm-pod 1/2 NotReady 0 14s s2i-nodejs-buildrun-phxxm-pod 0/2 Completed 0 2m
NAME READY STATUS RESTARTS AGE s2i-nodejs-buildrun-phxxm-pod 2/2 Running 0 10s s2i-nodejs-buildrun-phxxm-pod 1/2 NotReady 0 14s s2i-nodejs-buildrun-phxxm-pod 0/2 Completed 0 2mCopy to Clipboard Copied! Toggle word wrap Toggle overflow それぞれの
TaskRunリソースにSUCCEEDEDフィールドがTrueと表示されているかどうかを確認します。oc get tr
$ oc get trCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME SUCCEEDED REASON STARTTIME COMPLETIONTIME s2i-nodejs-buildrun-phxxm True Succeeded 2m39s 13s
NAME SUCCEEDED REASON STARTTIME COMPLETIONTIME s2i-nodejs-buildrun-phxxm True Succeeded 2m39s 13sCopy to Clipboard Copied! Toggle word wrap Toggle overflow それぞれの
BuildRunリソースにSUCCEEDEDフィールドがTrueと表示されているかどうかを確認します。oc get br
$ oc get brCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME SUCCEEDED REASON STARTTIME COMPLETIONTIME s2i-nodejs-buildrun True Succeeded 2m41s 15s
NAME SUCCEEDED REASON STARTTIME COMPLETIONTIME s2i-nodejs-buildrun True Succeeded 2m41s 15sCopy to Clipboard Copied! Toggle word wrap Toggle overflow 検証中にビルドの実行が失敗した場合は、
BuildRunリソースのstatus.failureDetailsフィールドをチェックして、Pod またはコンテナー内で失敗が発生した正確なポイントを特定できます。注記コンテナーの 1 つがタスクを完了したため、Pod が
NotReady状態に切り替わる可能性があります。これは想定される動作です。
build.spec.output.imageフィールドで指定されたレジストリーにイメージがプッシュされたかどうかを検証します。レジストリーにログインした後、以下のコマンドを実行してイメージをプルできます。podman pull quay.io/<repo>/<image>
$ podman pull quay.io/<repo>/<image>1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
Buildリソースの作成時に使用されるリポジトリー名とイメージ名。たとえば、イメージ名としてs2i-nodejs-exampleを使用できます。
1.2.1. ネットワークが制限された環境での source-to-image ビルドの作成 リンクのコピーリンクがクリップボードにコピーされました!
source-to-image ビルドストラテジーに必要なイメージのミラーリングを行い、ネットワークが制限された環境で source-to-image ビルドを作成できます。
前提条件
- クラスターが source-to-image ビルドの作成に使用できる git ソースに接続し、操作できる。
-
ローカルレジストリーで
source-to-imageビルドを作成するために必要な builder-image がある。ローカルレジストリーに builder-image がない場合は、ソースイメージをミラーリングします。
手順
以下のコマンドを実行して、
source-to-imageビルドストラテジーに必要なイメージのミラーリングを行います。oc image mirror --insecure -a <registry_authentication> registry.redhat.io/source-to-image/source-to-image-rhel8@sha256:d041c1bbe503d152d0759598f79802e257816d674b342670ef61c6f9e6d401c5 <mirror_registry>/<repo>/source-to-image-source-to-image-rhel8
$ oc image mirror --insecure -a <registry_authentication> registry.redhat.io/source-to-image/source-to-image-rhel8@sha256:d041c1bbe503d152d0759598f79802e257816d674b342670ef61c6f9e6d401c5 <mirror_registry>/<repo>/source-to-image-source-to-image-rhel8Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 「source-to-image ビルドの作成セクション」で説明されている手順を実行します。
1.3. buildpacks ビルドの作成 リンクのコピーリンクがクリップボードにコピーされました!
buildpacks ビルドを作成し、作成したイメージをターゲットレジストリーにプッシュできます。builds for Red Hat OpenShift では、次のタイプの buildpacks パッククラスタービルドストラテジーが利用できます。
-
buildpacksストラテジー -
buildpacks-extenderストラテジー
buildpacks-extender ストラテジーは、実験的な buildpacks extender のライフサイクルフェーズと互換性があります。このストラテジーは、Node.js および Python のビルドに使用できます。Quarkus および Golang のビルドには、buildpacks ストラテジーを使用してください。
前提条件
- OpenShift Container Platform クラスターに Builds for Red Hat OpenShift Operator がインストールされている。
-
ocCLI がインストールされている。 -
oc new-project buildpacks-exampleコマンドを使用して、最終的なアプリケーションイメージが保存されるプロジェクトが作成されている。 -
オプション:
shpCLI がインストールされている。
buildpacks で shp CLI を使用するには、追加の権限設定が必要です。この設定は、buildpacks のビルドの作成を開始する前に完了しておく必要があります。
手順
オプション: buildpacks で
shpCLI を使用するには、まず次の 2 つのコマンドを使用して、pipelineサービスアカウントにbuildpacks-exampleプロジェクトのイメージレジストリーにアクセスする権限を付与する必要があります。oc policy add-role-to-user system:image-puller system:serviceaccount:default:pipeline --namespace=buildpacks-example
$ oc policy add-role-to-user system:image-puller system:serviceaccount:default:pipeline --namespace=buildpacks-exampleCopy to Clipboard Copied! Toggle word wrap Toggle overflow oc policy add-role-to-user system:image-pusher system:serviceaccount:default:pipeline --namespace=buildpacks-example
$ oc policy add-role-to-user system:image-pusher system:serviceaccount:default:pipeline --namespace=buildpacks-exampleCopy to Clipboard Copied! Toggle word wrap Toggle overflow オプション: プライマリー作業プロジェクトに戻って、
shpCLI での作業を続行します。oc project default
$ oc project defaultCopy to Clipboard Copied! Toggle word wrap Toggle overflow オプション: 権限を適用して
shpCLI のセットアップを終了します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のいずれかの CLI を使用して
Buildリソースを作成し、OpenShift Container Platform クラスターに適用します。ocCLI の使用Copy to Clipboard Copied! Toggle word wrap Toggle overflow shpCLI の使用:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
次のいずれかの CLI を使用して
Buildリソースが作成されたかどうかを確認します。ocCLI の使用:oc get builds.shipwright.io buildpack-nodejs-build
$ oc get builds.shipwright.io buildpack-nodejs-buildCopy to Clipboard Copied! Toggle word wrap Toggle overflow shpCLI の使用:shp build list
$ shp build listCopy to Clipboard Copied! Toggle word wrap Toggle overflow
次のいずれかの CLI を使用して
BuildRunリソースを作成し、OpenShift Container Platform クラスターに適用します。ocCLI の使用:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 実行される
buildpack-nodejs-buildリソースを指定します。
shpCLI の使用:…
shp build run buildpack-nodejs-buildrun --follow
$ shp build run buildpack-nodejs-buildrun --follow
+
shp CLI バージョン 0.16.0 では、BuildRun リソースの名前を自動的に生成できません。名前を手動で作成する必要があります:
名前が一意の
BuildRunリソースを作成します。shp buildrun create buildpack-nodejs-<buildrun_resource_name> --buildref-name buildpack-nodejs-build
$ shp buildrun create buildpack-nodejs-<buildrun_resource_name> --buildref-name buildpack-nodejs-build1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- ビルドを参照するフラグを指定します。
ログを追跡します。
shp buildrun logs buildpack-nodej-<buildrun_resource_name> --follow
$ shp buildrun logs buildpack-nodej-<buildrun_resource_name> --followCopy to Clipboard Copied! Toggle word wrap Toggle overflow
次のいずれかの CLI を使用して、
BuildRunリソースが作成されたかどうかを確認します。ocCLI の使用:oc get buildrun buildpack-nodejs-buildrun
$ oc get buildrun buildpack-nodejs-buildrunCopy to Clipboard Copied! Toggle word wrap Toggle overflow shpCLI の使用:shp buildrun list
$ shp buildrun listCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注記BuildRunリソースはTaskRunリソースを作成し、その後ビルドストラテジーの手順を実行する Pod を作成します。
検証
- すべてのコンテナーがタスクを完了するまで待ちます。
Pod の
STATUSフィールドにCompletedと表示されているかどうかを確認します。oc get pods -w
$ oc get pods -wCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME READY STATUS RESTARTS AGE buildpack-go-build-ttwkl-d8x97-pod 2/8 NotReady 0 63s buildpack-go-build-ttwkl-d8x97-pod 0/8 Completed 0 72s buildpack-go-build-ttwkl-d8x97-pod 0/8 Completed 0 73s
NAME READY STATUS RESTARTS AGE buildpack-go-build-ttwkl-d8x97-pod 2/8 NotReady 0 63s buildpack-go-build-ttwkl-d8x97-pod 0/8 Completed 0 72s buildpack-go-build-ttwkl-d8x97-pod 0/8 Completed 0 73sCopy to Clipboard Copied! Toggle word wrap Toggle overflow TaskRunリソースのSUCCESSフィールドにTrueが表示されているかどうかを確認します。oc get tr
$ oc get trCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME SUCCEEDED REASON STARTTIME COMPLETIONTIME buildpack-go-build-ttwkl-d8x97 True Succeeded 112s 38s
NAME SUCCEEDED REASON STARTTIME COMPLETIONTIME buildpack-go-build-ttwkl-d8x97 True Succeeded 112s 38sCopy to Clipboard Copied! Toggle word wrap Toggle overflow BuildRunリソースのSUCCESSフィールドにTrueが表示されているかどうかを確認します。oc get br
$ oc get brCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME SUCCEEDED REASON STARTTIME COMPLETIONTIME buildpack-go-build-ttwkl True Succeeded 107s 33s
NAME SUCCEEDED REASON STARTTIME COMPLETIONTIME buildpack-go-build-ttwkl True Succeeded 107s 33sCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注記ビルド実行が失敗した場合は、
BuildRunリソースのstatus.failureDetailsフィールドをチェックして、Pod またはコンテナーで失敗した正確なポイントを特定できます。コンテナーの 1 つがタスクを完了したため、Pod が
NotReady状態に切り替わる可能性があります。これは想定される動作です。内部レジストリーにアクセスしてイメージをプルできるノードから次のコマンドを実行して、
build.spec.output.imageフィールドで指定したレジストリーにイメージがプッシュされているかどうかを確認します。podman pull
$ podman pullCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
image-registry.openshift-image-registry.svc:5000/buildpacks-example/taxi-app
$ image-registry.openshift-image-registry.svc:5000/buildpacks-example/taxi-appCopy to Clipboard Copied! Toggle word wrap Toggle overflow この例のプロジェクト名は
buildpacks-example、イメージ名はtaxi-appです。
1.4. OCI アーティファクトを使用したビルドの作成 リンクのコピーリンクがクリップボードにコピーされました!
Open Container Initiative (OCI) アーティファクトをソースコードとして使用してビルドを作成できます。OCI アーティファクト (スクラッチイメージとも呼ばれます) は、ソースコードだけを含むものであり、コンテナーとして実行するためのものではありません。コンテナーレジストリーから OCI アーティファクトをプルし、その内容を抽出して、ビルドを実行するためのソースコードとして使用できます。
前提条件
- OpenShift Container Platform クラスターに Builds for Red Hat OpenShift Operator がインストールされている。
-
ocコマンドラインインターフェイス (CLI) がインストールされている。 -
shpCLI がインストールされている。
手順
Buildリソースを作成して OpenShift Container Platform クラスターに適用します。次の設定例を参照してください。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
Buildリソースの名前を定義します。- 2
<quay.io/org/image:tag>は、OCI アーティファクトソースイメージの場所に置き換えます。- 3
<strategy-name>は、コンテナーをビルドするためのビルドストラテジーの名前 (buildahまたはsource-to-image) に置き換えます。- 4
<target-image-registry/repository/image:tag>は、ビルドしたイメージをプッシュする場所に置き換えます。- 5
- オプション:
<secret-name-for-credentials>は、コンテナーイメージをプッシュするための認証情報を保存するシークレット名に置き換えます。認証のためにプライベートレジストリー用のシークレットを生成するには、コンテナーレジストリーへの認証 を参照してください。
次のいずれかの方法を選択して、ソースコードを必要なレジストリーにアップロードし、ビルドを実行します。
shpCLI を使用します。ローカルソースコードを含むディレクトリーで次のコマンドを実行します。ソースコードをスクラッチコンテナーイメージにパッケージ化し、必要なレジストリーにプッシュして、ビルドを実行します。
shp build upload my-oci-build
$ shp build upload my-oci-build1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
Buildリソースの名前を定義します。
OCI アーティファクトを手動でアップロードします。
ソースコードのルートディレクトリーに
Containerfileを作成し、次の設定を追加します。FROM scratch COPY . /
FROM scratch COPY . /Copy to Clipboard Copied! Toggle word wrap Toggle overflow ソースコードのルートディレクトリーで次のコマンドを実行し、Podman を使用してコンテナーイメージをビルドします。
podman build -t <registry-path>/<image-name>:<tag>
$ podman build -t <registry-path>/<image-name>:<tag>1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- <registry-path>/<image-name>:<tag> は、コンテナーイメージのビルド場所に置き換えます。
次のコマンドを使用して、コンテナーイメージを必要な場所にプッシュします。
podman push <registry-path>/<image-name>:<tag>
$ podman push <registry-path>/<image-name>:<tag>1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- <registry-path>/<image-name>:<tag> は、ビルドしたイメージをプッシュする場所に置き換えます。
次のコマンドを使用してビルドを実行します。
shp build run my-oci-build
$ shp build run my-oci-build1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
Buildリソースの名前を定義します。
1.5. リソースの編集 リンクのコピーリンクがクリップボードにコピーされました!
oc CLI を使用して、buildah、source-to-image、および buildpacks ビルドプロセスによって作成されたリソースを編集できます。プロジェクト内のリソースを必要に応じて変更できます。
前提条件
-
ocCLI がインストールされている。
手順
次のコマンドを実行して、デフォルトのエディターで YAML 定義を開きます。
oc edit <resource-name> <build_resource-name>
$ oc edit <resource-name> <build_resource-name>1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
<resource-name>は、リソースの名前 (build、buildrun、またはbuildstrategy) に置き換えます。<build_resource-name>は、編集するビルドリソースの名前に置き換えます。
- YAML 定義を編集し、ファイルを保存します。
1.6. リソースの削除 リンクのコピーリンクがクリップボードにコピーされました!
oc CLI または shp CLI を使用して、Buildah、Source-to-Image (S2I)、および Buildpacks ビルドプロセスによって作成されたリソースを削除できます。これらのリソースを削除することは、プロジェクトで不要になったビルド設定をクリーンアップするのに役立ちます。
1.6.1. build リソースの削除 リンクのコピーリンクがクリップボードにコピーされました!
プロジェクトで必要ない場合は、build リソースを削除できます。
前提条件
-
ocCLI がインストールされている。 - オプション: shp CLI がインストールされている。
手順
次のいずれかの CLI を使用して
buildリソースを削除します。ocCLI の使用oc delete builds <build_resource_name>
$ oc delete builds <build_resource_name>1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- <build_resource_name> は、
buildリソースの名前に置き換えます。
shpCLI の使用shp build delete <build_resource_name>
$ shp build delete <build_resource_name>1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- <build_resource_name> は、
buildリソースの名前に置き換えます。
1.6.2. buildrun リソースの削除 リンクのコピーリンクがクリップボードにコピーされました!
プロジェクトで必要ない場合は、buildrun リソースを削除できます。
前提条件
-
ocCLI がインストールされている。 - オプション: shp CLI がインストールされている。
手順
次のいずれかの CLI を使用して
buildリソースを削除します。ocCLI の使用oc delete buildrun <buildrun_resource_name>
$ oc delete buildrun <buildrun_resource_name>1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- <buildrun_resource_name> は、
buildrunリソースの名前に置き換えます。
shpCLI の使用oc delete buildrun <buildrun_resource_name>
$ oc delete buildrun <buildrun_resource_name>1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- <buildrun_resource_name> は、
buildrunリソースの名前に置き換えます。
1.6.3. buildstrategy リソースの削除 リンクのコピーリンクがクリップボードにコピーされました!
プロジェクトで必要ない場合は、buildstrategy リソースを削除できます。
前提条件
-
ocCLI がインストールされている。
手順
ocCLI を使用してbuildstrategyリソースを削除します。oc delete buildstrategy <buildstartegy_resource_name>
$ oc delete buildstrategy <buildstartegy_resource_name>1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- <buildstartegy_resource_name> は、
buildstrategyリソースの名前に置き換えます。
Legal Notice
リンクのコピーリンクがクリップボードにコピーされました!
Copyright © Red Hat
OpenShift documentation is licensed under the Apache License 2.0 (https://www.apache.org/licenses/LICENSE-2.0).
Modified versions must remove all Red Hat trademarks.
Portions adapted from https://github.com/kubernetes-incubator/service-catalog/ with modifications by Red Hat.
Red Hat, Red Hat Enterprise Linux, the Red Hat logo, the Shadowman logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of the OpenJS Foundation.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation’s permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.