Docker-in-Docker/GitLab CI: Anmeldeinformationshelfer hinzufügen und verwenden

Docker-in-Docker/GitLab CI: Anmeldeinformationshelfer hinzufügen und verwenden

Für meine Organisation baue ich eine GitLab CI/CD-Pipeline für eines unserer Projekte. Ein Job in dieser Pipeline wird auf einem Docker-Executor GitLab Runner ausgeführt, der auf einem unserer eigenen Server läuft. Der Job beinhaltet die Verwendung von Image docker:20.10.20zusammen mit Service docker:20.10.20-dind. Das Ziel ist, ein Docker-Image aus meinem Projekt zu erstellen, das in das Container-Register des Projekts hochgeladen wird.gehostet auf gitlab.com selbst (also NICHT auf Amazon ECR). Ich habe dies mit der folgenden Jobkonfiguration in .gitlab-ci.yml: zum Laufen gebracht.

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

Allerdings erhalte ich beim Eingeben des docker loginBefehls scripteine Warnung bezüglich der Cybersicherheit:

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

Das unverschlüsselte Speichern von Anmeldeinformationen in einem Artefakt, das möglicherweise erhalten bleibt, ist für uns ein großes Problem, da wir uns große Sorgen um die Cybersicherheit machen. Ich kann jedoch keine Möglichkeit finden,Docker-Anmeldeinformationshelferim Docker-in-Docker-Container. (Ich möchte oder denke, ich muss den 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``` zusammen mit einer ausreichenden Entropiequelle verwenden.

Ich stecke fest und weiß nicht, wie ich weitermachen soll. Ich bin für jeden Vorschlag sehr dankbar. Sollte ich in diesem Fall auf einen Shell-Executor umsteigen?

Vielen Dank im Voraus!
Joshua

verwandte Informationen