概要
kaniko は Docker イメージを作成することができるツールです
dind を使うことなくイメージを作成できることができるので GitlabCI などでよく使われます
今回は GitlabCi で使って見ました
環境
- macOS 11.6.8
- kaniko 1.9.0
ContainerRegistry をオンにする
今回は Gitlab の ContainerRegistry に push するのでプロジェクトの ContainerRegistry をオンにしましょう
オンになっていないと CI でエラーになります
Dockerfile
プロジェクトの直下に Dockerfile を配置します
この Dockerfile を元にイメージを作成します
FROM ubuntu
ENTRYPOINT ["/bin/bash", "-c", "echo hello"]
.gitlab-ci.yml
これもプロジェクト直下に作成します
kaniko/executor というイメージを使って先程作成した Dockerfile を元にイメージを作成し push まで行います
認証情報を配置してあとは executor コマンドで Dockerfile とイメージの push 先を指定するだけで使えます
build:
stage: build
image:
name: gcr.io/kaniko-project/executor:debug
entrypoint: [""]
script:
- echo "{\"auths\":{\"$CI_REGISTRY\":{\"username\":\"$CI_REGISTRY_USER\",\"password\":\"$CI_REGISTRY_PASSWORD\"}}}" > /kaniko/.docker/config.json
- /kaniko/executor --context $CI_PROJECT_DIR --dockerfile $CI_PROJECT_DIR/Dockerfile --destination $CI_REGISTRY_IMAGE:$CI_COMMIT_TAG
動作確認
push したイメージを container registry から pull して実行してみましょう
「hello」と表示されれば OK です
最後に
ローカルで単体で使用するのは難しいかもです
基本的には k8s や docker 上で使います
参考サイト
https://github.com/GoogleContainerTools/kaniko/blob/main/docs/tutorial.md
0 件のコメント:
コメントを投稿