Slide 1

Slide 1 text

Finch VM 内で ECR Credential Helper を 使えるようにする KOITABASHI Yoshitaka 2023/4/24 yoshii0110 1

Slide 2

Slide 2 text

2023/4/24 yoshii0110 2 KOITABASHI Yoshitaka @yoshii0110 KDDIアジャイル開発センター株式会社 Amazon EC2, AWS Fargate, AWS App Runner 🥷 🏢 💕

Slide 3

Slide 3 text

あらためて Finch のおさらい 2023/4/24 yoshii0110 3 • build, run, push, pull などの Docker 互換の CLI コマンドツールに nerdctl • コンテナランタイムに containerd • OCI コンテナイメージのビルドに BuildKit • 仮想マシン管理に Lima

Slide 4

Slide 4 text

Finch を使って一連の動作をやってみる (VM の設定) 1: Finch は HomeBrew でひける $ brew install --cask finch 2-1: Finch は 仮想マシン(VM)を利用するため finch vm init コマンドで 初期設定が必要。 初回のみ。これにより VM が起動 $ finch vm init 2-2: 初回以降は、VM の起動、停止を下記のコマンドで制御 $ finch vm start $ finch vm stop 2023/4/24 yoshii0110 4

Slide 5

Slide 5 text

Finch を使って一連の動作をやってみる (コンテナイメージ作成 / コンテナ実行) 3: ほぼ docker コマンドと同じなので、下記のようにコンテナイメージを Dockerfile から作成 $ finch image build -t : 4: コンテナイメージの確認 $ finch image ls 5: コンテナイメージのタグ付け $ finch image tag : : 6: コンテナ実行 $ finch container run --name : 2023/4/24 yoshii0110 5

Slide 6

Slide 6 text

Finch を使っての ECR へ image を push する 2023/4/24 yoshii0110 6 何も考えずに ECR リポジトリへpushすると?? 都度(12時間ごと)、ECR へログインしないといけない

Slide 7

Slide 7 text

Amazon ECR Docker Credential Helper とは? 2023/4/24 yoshii0110 7 https://github.com/awslabs/amazon-ecr-credential-helper Amazon ECR Docker Credential Helper を使うと ECR のログインを省略できる 問題は、これをどうやって Finch で使うのかということ

Slide 8

Slide 8 text

Finch VM の設定 • ~/.finch/finch.yaml に仮想マシンの設定が記載されている • Finch を clone してきて、この finch.yaml の設定を変えることで VM 初期化 / 起動時のプロビジョニングする際に実行されるので、 スクリプトを変えてみる 2023/4/24 yoshii0110 8

Slide 9

Slide 9 text

finch.yaml の中身 2023/4/24 yoshii0110 9

Slide 10

Slide 10 text

VM プロビジョング時に実行されるスクリプトが記載されているので、 そこにECR Docker Credential Helperの設定を記載 2023/4/24 yoshii0110 10

Slide 11

Slide 11 text

ローカルの ~/.finch/config.json を修正 • ~/.finch/config.json にある finch クレデンシャルファイルの設定 も更新する必要がある • ECR Credential helper のリポジトリに例があるのですが、 下記のように更新 2023/4/24 yoshii0110 11

Slide 12

Slide 12 text

修正した finch.yaml を使用して、 ローカルで Finch をビルドし実行 • Finch リポジトリをCloneする際に、サブモジュールも含めるようにする $ git clone --recurse-submodules https://github.com/runfinch/finch.git • 次に、make コマンドを実行してバイナリをビルド _output のバイナリは直接使用できる $ ./_output/bin/finch vm init 2023/4/24 yoshii0110 12

Slide 13

Slide 13 text

動作確認 2023/4/24 yoshii0110 13

Slide 14

Slide 14 text

確認問題 Finch のアイコンはどちらでしょう?? 2023/4/24 yoshii0110 14 ① ② #jawsug_ct で回答を!