![Docker-in-docker/GitLab CI: 認証情報ヘルパーの追加と使用](https://rvso.com/image/782607/Docker-in-docker%2FGitLab%20CI%3A%20%E8%AA%8D%E8%A8%BC%E6%83%85%E5%A0%B1%E3%83%98%E3%83%AB%E3%83%91%E3%83%BC%E3%81%AE%E8%BF%BD%E5%8A%A0%E3%81%A8%E4%BD%BF%E7%94%A8.png)
私の組織では、プロジェクトの 1 つに GitLab CI/CD パイプラインを構築しています。このパイプラインの 1 つのジョブは、独自のサーバーの 1 つで実行されている Docker executor GitLab ランナーで実行されます。ジョブには、imagedocker:20.10.20
と service を一緒に使用することが含まれますdocker:20.10.20-dind
。目標は、プロジェクトのコンテナー レジストリにアップロードされたプロジェクトから Docker イメージを構築することです。gitlab.com 自体でホストされています (Amazon ECR ではありません)。私はこれを次のジョブ構成で実行しています.gitlab-ci.yml
:
docker-image-build:
stage: Docker image build
image: docker:20.10.20
services:
- name: docker:20.10.20-dind
alias: docker
tags:
- docker-runner
script:
- echo $CI_REGISTRY_PASSWORD | docker login -u $CI_REGISTRY_USER $CI_REGISTRY --password-stdin
- docker build --pull -m 3g --memory-swap -1 -t $CI_REGISTRY_IMAGE --build-arg FOO=$FOO --build-arg BAR=$BAR .
- docker push $CI_REGISTRY_IMAGE
しかし、docker login
コマンドを実行すると、script
サイバーセキュリティ関連の警告が表示されます。
Login Succeeded
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store
サイバーセキュリティに非常に関心がある私たちにとって、暗号化されていない認証情報をアーティファクトに保存することは大きな問題です。しかし、インストールする方法が見つからないようです。docker 認証ヘルパーdocker-in-docker コンテナ内。(十分なエントロピー ソースとともに、pass```` based credential helper.) It seems to be a very barebone Linux image without a package manager or compiler. It only has tools such as wget and tar, so I could be able to download binaries and I can in fact install the
docker-credential-pass binary itself. But I'm mostly stuck with no way to get
pass gpg```を使用する必要があると思います。)installed, let alone its dependency
行き詰まっていて、どう進めばいいのかわかりません。何かアドバイスがあれば、ぜひお願いします。この場合、シェル エグゼキュータに切り替えるべきでしょうか?
よろしくお願いします!
ジョシュア