![Docker-in-Docker/GitLab CI: Anmeldeinformationshelfer hinzufügen und verwenden](https://rvso.com/image/782607/Docker-in-Docker%2FGitLab%20CI%3A%20Anmeldeinformationshelfer%20hinzuf%C3%BCgen%20und%20verwenden.png)
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.20
zusammen 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 login
Befehls script
eine 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 the
Docker-Credential-Pass- binary itself. But I'm mostly stuck with no way to get
Pass installed, let alone its dependency
gpg``` 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