Почему gcloud недоступен для / usr / bin / sh в экземплярах Google Compute Engine?

Я пытаюсь написать файл модуля для своего экземпляра CoreOS (версия 1185.5.0), работающего в Google Compute Engine. Однако он включает вызов gcloud через /usr/bin/sh, например /usr/bin/sh -c 'gcloud --version'. Проблема, с которой я столкнулся, заключается в том, что / usr / bin / sh не находит gcloud: /usr/bin/sh: gcloud: command not found. Я не знаю почему, поскольку gcloud доступен мне в моей оболочке входа в систему.

В принципе, как я могу гарантировать, что /usr/bin/sh может работать gcloud?

Редактировать:

which также не находит gcloud в моей оболочке входа в систему:

$ which gcloud
which: no gcloud in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/bin)

person aknuds1    schedule 21.12.2016    source источник


Ответы (2)


Выясните, где находится gcloud (через which gcloud), и укажите полный путь в /bin/sh вызовах.

Например:

$ which gcloud
/home/myusername/google-cloud-sdk/bin/gcloud
$ sh -c '/home/myusername/google-cloud-sdk/bin/gcloud version'
person Zachary Newman    schedule 21.12.2016
comment
Я тоже думал об этом, но тоже не нашел. - person aknuds1; 21.12.2016

В CoreOS gcloud - это псевдоним команды:

$ alias gcloud alias gcloud = '(docker images google / cloud-sdk || docker pull google / cloud-sdk)> / dev / null; docker run -t -i --net = host -v / home / myusername /. конфигурация: /. config -v /var/run/docker.sock:/var/run/doker.sock google / cloud-sdk gcloud '

Этот псевдоним установит / запустит gcloud. Запуск gcloud по сути:

$ docker run google / cloud-sdk справка gcloud

Или под управлением указанного выше псевдонима:

$ docker run -t -i --net = host -v /home/myusername/.config:/.config -v /var/run/docker.sock:/var/run/doker.sock google / cloud-sdk gcloud

person kevan    schedule 28.12.2016