Docker-in-docker/GitLab CI: 認証情報ヘルパーの追加と使用

Docker-in-docker/GitLab CI: 認証情報ヘルパーの追加と使用

私の組織では、プロジェクトの 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 thedocker-credential-pass binary itself. But I'm mostly stuck with no way to getpass gpg```を使用する必要があると思います。)installed, let alone its dependency

行き詰まっていて、どう進めばいいのかわかりません。何かアドバイスがあれば、ぜひお願いします。この場合、シェル エグゼキュータに切り替えるべきでしょうか?

よろしくお願いします!
ジョシュア

関連情報