はじめに
IBM Cloudでコンテナをデプロイする際に、IBM Container RegistryとIBM Code EngineをIAM (サービスID) を使って接続する方法を情報共有する。
概要
以下の手順で進める。
## IBM Cloud
0. 環境準備する
1. いい感じの権限付与してサービスID作る
2. APIキー作る
## Local
3. APIキーを使ってdocker loginする
4. docker push する
## Code Engine
5. レジストリー・アクセス・シークレットを登録する
6. コンテナー・イメージ情報を入れる
詳細
IBM Cloud
0. 環境準備する
ここらを準備する。
IBM Code Engine # コンテナをサクッとデプロイできる
IBM Container Registry # コンテナイメージを置く場所
1. いい感じの権限付与してサービスID作る
必要そうなアクセス権を選択する。
できるだけ、権限狭くなるように、リソースのところも、リソース・グループを選んで制限した。
2. APIキー作る
Local
3. APIキーを使ってdocker loginする
ここらを参照しながら、コマンドを打ってく。
https://cloud.ibm.com/docs/Registry?topic=Registry-getting-started&locale=ja
https://cloud.ibm.com/docs/Registry?topic=Registry-registry_access&locale=ja
ユーザー名はiamapikeyになるらしい。registry_domain
のus.icr.io
はリージョンによって違う。
ibmcloud login
docker login -u iamapikey -p {apikey} us.icr.io
4. docker push する
こんな感じで、コンテナをビルドしてプッシュする。ドメインやネームスペース等は要変更。
docker build -t hoge:latest . --platform linux/amd64
docker tag hoge us.icr.io/my_namespace/hoge:latest
docker push us.icr.io/my_namespace/hoge:latest
Code Engine
5. レジストリー・アクセス・シークレットを登録する
Code EngineからContainer RegistryにアクセスするためにAPIキーを登録する。
6. コンテナー・イメージ情報を入れる
参考
CLIでやる方法が書かれてる
https://cloud.ibm.com/docs/Registry?topic=Registry-iam_access&locale=ja