2022年9月6日火曜日

kaniko超入門

kaniko超入門

概要

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 件のコメント:

コメントを投稿