Помилка error getting credentials - err: exec: "docker-credential-desktop": executable file not found in $PATH
виникає через те, що Docker намагається використати менеджер облікових даних docker-credential-desktop
, але його немає в системі. Цей менеджер часто встановлюється разом із Docker Desktop, який зазвичай використовується на macOS і Windows, але на Linux його немає.
На Linux Docker зазвичай використовує docker-credential-secretservice
або docker-credential-pass
для збереження облікових даних.
Рішення
-
Перевірте налаштування облікових даних у Docker
Відкрийте або створіть файл конфігурації Docker у вашому домашньому каталозі:
nano ~/.docker/config.json
У цьому файлі ви побачите розділ
credsStore
, де Docker зберігає інформацію про менеджер облікових даних. Наприклад:{ "credsStore": "desktop" }
Замініть
"desktop"
на інший доступний менеджер, наприклад,"secretservice"
або"pass"
:{ "credsStore": "secretservice" }
Збережіть файл і закрийте редактор.
-
Встановіть потрібний менеджер облікових даних:
-
Для використання
secretservice
:sudo apt install gnupg pass
-
Для використання
pass
(інший варіант збереження облікових даних):sudo apt install pass
-
-
Перевірте роботу Docker після змін:
Спробуйте ще раз виконати команду
madock setup --download --install
або будь-яку іншу Docker-команду, яка вимагає доступу до облікових даних, щоб переконатися, що помилка зникла.
Альтернативний варіант: Видалити credsStore
Якщо Docker не використовує авторизацію для приватного реєстру, ви можете повністю видалити рядок "credsStore"
із ~/.docker/config.json
. У такому разі Docker буде зберігати облікові дані безпосередньо у файлі конфігурації.