![CI Docker-in-docker/GitLab: adicionando e usando auxiliar de credencial](https://rvso.com/image/782607/CI%20Docker-in-docker%2FGitLab%3A%20adicionando%20e%20usando%20auxiliar%20de%20credencial.png)
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.20
junto 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 login
comando script
recebo 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 the
docker-credential-pass binary itself. But I'm mostly stuck with no way to get
pass installed, let alone its dependency
gpg``` 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