CI Docker-in-docker/GitLab: adicionando e usando auxiliar de credencial

CI Docker-in-docker/GitLab: adicionando e usando auxiliar de credencial

Para minha organização, estou construindo um pipeline de CI/CD do GitLab para um de nossos projetos. Um trabalho neste pipeline será executado em um executor GitLab do Docker em execução em um de nossos próprios servidores. O trabalho envolve o uso de image docker:20.10.20junto com service docker:20.10.20-dind. O objetivo é construir uma imagem Docker do meu projeto que seja carregada no registro de contêiner do projetohospedado no próprio gitlab.com (então NÃO no Amazon ECR). Eu tenho isso instalado e funcionando com a seguinte configuração de trabalho em .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

No entanto, ao docker logincomando scriptrecebo um aviso relacionado à segurança cibernética:

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

Armazenar credenciais não criptografadas em um artefato que possa permanecer por aí é um grande problema para nós, pois estamos muito preocupados com a segurança cibernética. No entanto, não consigo encontrar uma maneira de instalardocker-credential-helpersno contêiner docker-in-docker. (Eu gostaria ou acho que preciso usar o 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 installed, let alone its dependencygpg``` junto com uma fonte suficiente de entropia.

Estou preso e não sei como proceder. Qualquer sugestão seria muito apreciada. Devo mudar para um executor de shell neste caso?

Agradeço antecipadamente!
Joshua

informação relacionada