プライベートDockerレジストリにイメージを含むDocker構成を展開しようとしています。
これで、_docker login registry.example.com
_を実行するたびに、次のエラーメッセージが表示されます。
_error getting credentials - err: exit status 1, out: `Cannot autolaunch D-Bus without X11 $DISPLAY`
_
非macosユーザーのために私が見つけた唯一の解決策は、最初にexport $(dbus-launch)
を実行することでしたが、それは何も変更しませんでした。
私はUbuntuサーバーを実行していて、Ubuntu DockerパッケージとDocker-CEパッケージの両方を試しました。
X11セッションなしでログインするにはどうすればよいですか?
これは、何らかの理由で何らかのX11依存関係があると思われるsecretservice
実行可能ファイルをデフォルトで使用するためです。 pass
をインストールして設定すると、Dockerは代わりにそれを使用して問題を解決するようです。
一言で言えば( https://github.com/docker/compose/issues/602 から)
Sudo apt install gnupg2 pass
gpg2 --full-generate-key
これにより、gpg2キーが生成されます。それが終わったら、あなたはそれをリストすることができます
gpg2 -k
([uid]
というラベルの行から)キーIDをコピーして、
pass init "whatever key id you have"
これでdocker login
が機能するはずです。
これに関してランチパッドに記録されたいくつかのバグがあります。
https://bugs.launchpad.net/ubuntu/+source/docker-compose/+bug/1796119
Ubuntu 18.04で私を助けたのは:
Sudo apt-get install docker
経由でdockerを再インストールするSudo docker login
経由で再度ログインする問題のパッケージを削除できますgolang-docker-credential-helpers
すべて削除せずにdocker-compose
。
以下は、X11がインストールされていないサーバーで動作しました。
dpkg -r --ignore-depends=golang-docker-credential-helpers golang-docker-credential-helpers
その後
echo 'foo' | docker login mydockerrepo.com -u dockeruser --password-stdin
ソース:
https://github.com/docker/docker-credential-helpers/issues/105 のコメントで見つけた、すでに投稿されているものよりもはるかに簡単な答えがあります。
解決策は、docker-credential-secretserviceの名前を変更することです。例:mv /usr/bin/docker-credential-secretservice /usr/bin/docker-credential-secretservice.broken
これを実行すると、docker-composeがインストールされているかどうかに関係なく、dockerログインが機能します。他のパッケージの追加または削除は必要ありません。
この問題は、Ubuntuリポジトリからインストールされたdocker-compose
をアンインストールし、_ https://docs.docker.com/compose/install/#installの公式指示に従ってdocker-compose
をインストールすることで解決しました。 -compose