`docker-credential-gcloud` не в системе PATH
После последних обновлений gcloud и docker я не могу получить доступ к изображениям в моем репозитории контейнеров google. Локально, когда я запускаю: gcloud auth configure-docker
в соответствии с инструкциями после обновления gcloud, я получаю следующее сообщение:
WARNING: `docker-credential-gcloud` not in system PATH.
gcloud Docker credential helper can be configured but it will not work until this is corrected.
gcloud credential helpers already registered correctly.
Запуск which docker-credential-gcloud
возвращает docker-credential-gcloud not found
.
У меня нет других проблем, связанных с gcloud, и для жизни я не могу понять, как установить/добавить docker-credential-gcloud в путь. Вот то, что я установил (показано через gcloud version
):
Google Cloud SDK 197.0.0
beta 2017.09.15
bq 2.0.31
container-builder-local
core 2018.04.06
docker-credential-gcr
gsutil 4.30
У меня также есть Docker CE Version 18.03.0-ce-mac60 (23751).
Здесь мой $PATH: /usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
Я также запускал source /usr/local/Caskroom/google-cloud-sdk/latest/google-cloud-sdk/path.zsh.inc
в исходной установке gcloud.
Ответы
Ответ 1
Примечание: все docker-credential-gcr
ниже docker-credential-gcr
можно заменить на docker-credential-gcloud
. Я думаю, что это просто разные версии gcloud, я могу ошибаться.
Я также использовал Homebrew Cask для установки gcloud. Я установил docker-credential-gcr
с
$ gcloud components install docker-credential-gcr
А потом, как вы сказали, which docker-credential-gcr
ничего вам не дал.
Поэтому я запустил which gcloud
чтобы найти символическую ссылку на gcloud в /usr/local/bin
. Эта символическая ссылка создана Homebrew, когда вы сначала установили gcloud. Теперь docker-credential-gcr
был установлен не Homebrew, а самим gcloud, поэтому символической ссылки нет.
Я позвонил в readlink/usr/local/bin/gcloud
и узнал, что gcloud установлен в /usr/local/Caskroom/google-cloud-sdk/latest/google-cloud-sdk/bin/
.
Затем:
$ ls /usr/local/Caskroom/google-cloud-sdk/latest/google-cloud-sdk/bin
Там вы должны увидеть список docker-credential-gcr
.
Я просто связал его с /usr/local/bin
:
$ ln -s /usr/local/Caskroom/google-cloud-sdk/latest/google-cloud-sdk/bin/docker-credential-gcr /usr/local/bin/
Затем запустите:
$ docker-credential-gcr configure-docker
Это должно преуспеть.
Ответ 2
Никогда не нашел способ прямого разрешения проблемы docker-credential-gcloud
, но следующее снова запустило меня. ПРЕДУПРЕЖДЕНИЕ: следующее будет удалять все существующие изображения докеров и устанавливать кучу утилит gcloud:
Ответ 3
Кажется, что-то с Homebrew Cask. Я удалил бокс, а затем переустановил Google Cloud SDK вручную загрузил tar-мяч и выполнил пакетную установку script, как описано там.
Теперь docker-credential-gcloud
находится на моем пути:
$ which docker-credential-gcloud
/Users/moritz/google-cloud-sdk/bin/docker-credential-gcloud
Ответ 4
У меня возникла проблема при попытке выполнить SSH из Google Cloud Build в экземпляр виртуальной машины Engine, поэтому
steps:
- name: 'gcr.io/cloud-builders/gcloud'
args: ['compute', 'ssh',
'--project', '$PROJECT_ID',
'--zone', 'asia-southeast1-b',
'--strict-host-key-checking=no',
'[email protected]',
'--command' ,'sh start.sh'
Мой start.sh
#!/bin/sh
echo "Started: $(date --iso-8601=seconds)"
docker pull gcr.io/aaa/bbbc/cccc
echo "Finished: $(date --iso-8601=seconds)"
Вопрос был в том, How to set PATH when running a ssh command?
https://unix.stackexchange.com/info/332532/how-to-set-path-when-running-a-ssh-command