GitLab CI で Docker Image をビルドして ECR に push する
元ネタ: 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
- ex)
GitLabで上記のジョブを実行してみて ECR に Image が登録されれば OK
ポイント
いくつかポイントがあるので補足しておく
- kaniko の image は
:debug
を使用する。- GitLab CI で動作させるためには
sh
が必要らしく、:debug
のイメージが必要
- GitLab CI で動作させるためには
-
kaniko
のentrypoint
をオーバーライドする- オーバーライドしないと
/kaniko/executor
を直接実行しようとして エラーになる
- オーバーライドしないと
参考
Author And Source
この問題について(GitLab CI で Docker Image をビルドして ECR に push する), 我々は、より多くの情報をここで見つけました https://qiita.com/snaka/items/e6c5853479d44dc035f2著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .