web-dev-qa-db-fra.com

la connexion à docker échoue sur un serveur sur lequel X11 n'est pas installé

J'essaie de déployer une configuration de menu fixe avec des images sur un registre de menu fixe privé.

Maintenant, chaque fois que j'exécute docker login registry.example.com, j'obtiens le message d'erreur suivant:

error getting credentials - err: exit status 1, out: `Cannot autolaunch D-Bus without X11 $DISPLAY`

La seule solution que j'ai trouvée pour les utilisateurs non-macos était d'exécuter export $(dbus-launch) en premier, mais cela n'a rien changé.

J'utilise Ubuntu Server et j'essaie à la fois avec les packages Ubuntu Docker et Docker-CE.

Comment puis-je me connecter sans session X11?

5
msrd0

Cela semble être dû au fait qu'il utilise par défaut l'exécutable secretservice qui semble avoir une sorte de dépendance à X11 pour une raison quelconque. Si vous installez et configurez pass, docker l'utilisera à la place, ce qui semble résoudre le problème.

En un mot (de https://github.com/docker/compose/issues/6023 )

Sudo apt install gnupg2 pass 
gpg2 --full-generate-key

Cela génère un vous une clé gpg2. Ensuite, vous pouvez le lister avec

gpg2 -k

Copiez l’identifiant de la clé (à partir de la ligne nommée [uid]) et faites

pass init "whatever key id you have"

Maintenant, docker login devrait fonctionner.

Quelques bugs ont été enregistrés dans le tableau de bord à ce sujet:

https://bugs.launchpad.net/ubuntu/+source/golang-github-docker-docker-credential-helpers/+bug/1794307

https://bugs.launchpad.net/ubuntu/+source/docker-compose/+bug/1796119

7
ChrisWue

J'ai résolu ce problème en désinstallant docker-compose qui avait été installé à partir du référentiel Ubuntu et en installant docker-compose à l'aide d'instructions officielles à https://docs.docker.com/compose/install/#install-compose

0
Oleg Neumyvakin