AWS ECRを使用してプライベートDockerfileイメージをホストしていますが、それをGitLab CIで使用したいと考えています。
ドキュメントに応じて、私はdocker-credential-ecr-loginを設定してプライベートイメージを取得する必要がありますが、他に何をするかはわかりません。それが私の.gitlab-ciファイルです:
image: 0222822883.dkr.ecr.us-east-1.amazonaws.com/api-build:latest
tests:
stage: test
before_script:
- echo "before_script"
- apt install Amazon-ecr-credential-helper
- apk add --no-cache curl jq python py-pip
- pip install awscli
script:
- echo "script"
- bundle install
- bundle exec rspec
allow_failure: true # for now as we do not have tests
ありがとうございました。
GitLabドキュメントから。 AWSアカウントとやり取りするために、GitLab CI/CDパイプラインでは、AWS_ACCESS_KEY_IDとAWS_SECRET_ACCESS_KEYの両方を、[設定]> [CI/CD]> [変数]のGitLab設定で定義する必要があります。次に、beforeスクリプトに追加します。
image: 0222822883.dkr.ecr.us-east-1.amazonaws.com/api-build:latest
tests:
stage: test
before_script:
- echo "before_script"
- apt install Amazon-ecr-credential-helper
- apk add --no-cache curl jq python py-pip
- pip install awscli
- $( aws ecr get-login --no-include-email )
script:
- echo "script"
- bundle install
- bundle exec rspec
allow_failure: true # for now as we do not have tests
また、タイプミスはawscli
ではなくawsclir
でした。その後、ビルド、テスト、Pushを適宜追加します。
なんらかの論理エラーがあると思います。ビルド構成のimage
は、ビルドしてデプロイするイメージではなく、CIスクリプトランナーイメージです。
ユーティリティとGitLab CIなどへの接続を持つ単なるイメージであるため、どのような場合でもそれを使用する必要はないと思います。通常、イメージにはプロジェクトの依存関係はありません。
このような例を確認してください https://Gist.github.com/jlis/4bc528041b9661ae6594c63cd2ef673c 正しい方法をより明確にするために、.
Gitlab runnerのdocker executorモードを使用して同じ問題に直面しました。
EC2インスタンスへのSSHは、docker-credential-ecr-login
が/usr/bin/
に存在することを示しました。コンテナーに渡すには、このパッケージをgitlabランナーコンテナーにマウントする必要がありました。
gitlab-runner register -n \
--url '${gitlab_url}' \
--registration-token '${registration_token}' \
--template-config /tmp/gitlab_runner.template.toml \
--executor docker \
--tag-list '${runner_name}' \
--description 'gitlab runner for ${runner_name}' \
--docker-privileged \
--docker-image "Alpine" \
--docker-disable-cache=true \
--docker-volumes "/var/run/docker.sock:/var/run/docker.sock" \
--docker-volumes "/cache" \
--docker-volumes "/usr/bin/docker-credential-ecr-login:/usr/bin/docker-credential-ecr-login" \
--docker-volumes "/home/gitlab-runner/.docker:/root/.docker"
このスレッドの詳細情報: https://gitlab.com/gitlab-org/gitlab-runner/-/issues/1583#note_375018948