コードエンジンでコンテナイメージをビルドする
概要
このガイドではIBM Code Engine ソースコントロールリポジトリからコンテナイメージを構築するには.舞台裏でコードエンジンが使用されますTekton パイプラインは、Githubリポジトリからソースコードをプルし、供給されたDockerファイルを使用してコンテナイメージを作成します.ビルドが完了したらコードエンジンが新しいコンテナイメージをIBM Cloud Container Registry .
注:コードエンジンは現在実験的な提供であり、すべてのリソースは7日ごとに削除されます.
IBMクラウドシェルでセッションを開始する
IBMのクラウド・コンソールで、IBM
.
セッションを開始し、自動的にIBMクラウドCLIを通してログインします.
ターゲットリソースグループ
コードエンジンCLIと対話するために、コードエンジンプロジェクトが作成されるリソースグループをターゲットにする必要があります.
$ ibmcloud target -g <Your Resource Group>
コードエンジンプロジェクトを作成する
最初の手順はコードエンジンプロジェクトを作成することです.
Keep in mind during the Beta phase you are limited to one Code Engine project per region. If you already have a Code Engine project you can simply target that project using the command
ibmcloud ce project target -n <name of project>
を指定します
--target
オプションは自動的にコードエンジンCLIを持っています.$ ibmcloud ce project create -n <Project Name> --target
プロジェクトの作成には数分かかるが、完了すると次のようになります.$ ibmcloud ce project create -n ce-demo-project --target
Creating project 'ce-demo-project'...
Waiting for project 'ce-demo-project' to be in ready state...
Now selecting project 'ce-demo-project'.
OK
レジストリアクセス用のコードエンジンのAPIキーを作成する
私たちのビルドプロセスの一環として、我々は公共のgithubレポを引っ張っているが、その後に組み込まれたコンテナをプッシュする予定ですIBM Cloud Container Registry . コードエンジンプロジェクトがレジストリにプッシュできるようにするには、APIキーを作成する必要があります.
$ ibmcloud iam api-key-create <Project Name>-cliapikey -d "API Key for talking to Image registry from Code Engine" --file key_file
コードエンジンレジストリ
APIキーを使用して、IBM Cloud Containerレジストリをコードエンジンに追加します.IBMコンテナレジストリを使用する場合、ユーザー名は常に
iamapikey
. 別のIBMコンテナレジストリにプッシュしたい場合endpoint 更新--server
フラグに応じて.$ export CR_API_KEY=`jq -r '.apikey' < key_file`
$ ibmcloud ce registry create --name ibmcr --server us.icr.io --username iamapikey --password "${CR_API_KEY}"
コマンドを実行すると、レジストリの秘密をすべて表示できます.ibmcloud ce registry list
.$ ibmcloud ce registry list
Project 'demo-rt' and all its contents will be automatically deleted 7 days from now.
Listing image registry access secrets...
OK
Name Age
ibmcr 11s
コードエンジンビルド定義
レジストリのアクセスを追加すると、我々のビルド定義を作成することができます.既にイメージをプッシュするコンテナの名前空間がない場合は、このガイドを作成してください.
$ ibmcloud ce build create --name go-app-example-build --source https://github.com/greyhoundforty/ce-build-example-go --strategy kaniko --size medium --image us.icr.io/<namespace>/go-app-example --registry-secret ibmcr
コマンドの破壊kaniko
ビルドジョブを送信する
ビルドランが送信される前に(実際にコンテナイメージを構築するプロセス)、コードエンジンを出力するKubernetesクラスタを対象とします.これは私たちがビルドのためだけでなく、進行状況を追跡するために作られているポッドを見ることができます.持つ
kubctl
クラウドシェル内では、次のコマンドを実行します.ibmcloud ce project target -n <Name of Project> -k
出力は以下のようになります.
$ ibmcloud ce project target -n demo-rt -k
Selecting project 'demo-rt'...
Added context for 'demo-rt' to the current kubeconfig file.
OK
With kubectl
適切に設定すると、現在のコンテナイメージを実際にビルドすることができますbuildrun
コマンド.以前に作成したビルド定義を指定します--build
フラグ:$ ibmcloud ce buildrun submit --name go-app-buildrun-v1 --build go-app-example-build
コマンドを使用してビルド実行の状態を確認できますibmcloud ce buildrun get --name <Name of build run>
$ ibmcloud ce buildrun get --name go-app-buildrun-v1
Project 'demo-rt' and all its contents will be automatically deleted 7 days from now.
Getting build run 'go-app-buildrun-v1'...
OK
Name: go-app-buildrun-v1
ID: d378e865-ecf4-4e26-932d-acb437eef0ef
Project Name: demo-rt
Project ID: ab07a001-9a77-4fd8-82e8-d4f8395ad735
Age: 36s
Created: 2020-09-23 09:13:33 -0500 CDT
Status:
Reason: Running
Registered: Unknown
Instances:
Name Running Status Restarts Age
go-app-buildrun-v1-xpqfq-pod-hqchd 2/4 Running 0 34s
また、実行してKubernetesポッドの状態を確認することができますkubectl get pods
$ kubectl get pods
NAME READY STATUS RESTARTS AGE
go-app-buildrun-v1-xpqfq-pod-hqchd 2/4 Running 0 41s
ビルドが成功したらPODが表示されますCompleted
とビルドランが表示されますSucceeded
$ kubectl get pods
NAME READY STATUS RESTARTS AGE
go-app-buildrun-v1-xpqfq-pod-hqchd 0/4 Completed 0 4m10s
$ ibmcloud ce buildrun get --name go-app-buildrun-v1
Project 'demo-rt' and all its contents will be automatically deleted 7 days from now.
Getting build run 'go-app-buildrun-v1'...
OK
Name: go-app-buildrun-v1
ID: d378e865-ecf4-4e26-932d-acb437eef0ef
Project Name: demo-rt
Project ID: ab07a001-9a77-4fd8-82e8-d4f8395ad735
Age: 4m26s
Created: 2020-09-23 09:13:33 -0500 CDT
Status:
Reason: Succeeded
Registered: True
Instances:
Name Running Status Restarts Age
go-app-buildrun-v1-xpqfq-pod-hqchd 0/4 Succeeded 0 4m24s
Reference
この問題について(コードエンジンでコンテナイメージをビルドする), 我々は、より多くの情報をここで見つけました https://dev.to/greyhoundforty/build-container-images-with-code-engine-1h57テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol