LoginSignup
4
6

More than 3 years have passed since last update.

GitLab CI で Docker Image をビルドして ECR に push する

Posted at

元ネタ: GitLab RunnerとkanikoでDockerイメージをビルドする - GeekFactory

以下のようなジョブを .gitlab-ci.yml に記述

gitlab-ci.yml
build_image_with_kaniko:
  stage: build
  image:
    name: gcr.io/kaniko-project/executor:debug
    entrypoint: [""]
  script:
    - |
      cat > /kaniko/.docker/config.json <<EOF
      {
        "credsStore": "ecr-login"
      }
      EOF
      /kaniko/executor --context $CI_PROJECT_DIR --dockerfile $CI_PROJECT_DIR/Dockerfile --destination $ECR_URI:$CI_COMMIT_SHORT_SHA

GitLab で Ci/CD で参照する変数の設定で以下の環境変数を設定

  • AWS_ACCESS_KEY_ID
  • AWS_SECRET_ACCESS_KEY
  • ECR_URI
    • ex) 000000000000.dkr.ecr.ap-northeast-1.amazonaws.com/hoge

image.png

GitLabで上記のジョブを実行してみて ECR に Image が登録されれば OK

ポイント

いくつかポイントがあるので補足しておく

  • kaniko の image は :debug を使用する。
    • GitLab CI で動作させるためには sh が必要らしく、:debug のイメージが必要
  • kanikoentrypoint をオーバーライドする
    • オーバーライドしないと /kaniko/executor を直接実行しようとして エラーになる

参考

4
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
6