Как выполнить требования к установке pip из частного репо в облачном источнике Google?

Я пытаюсь создать Dockerfile, который устанавливает требования через pip в контейнер, который он создает. Думаю, что-то может быть не настроено прямо в SDK / облачной консоли Google. Я получаю такую ​​ошибку:

me@cloud-q2smart:~/github/jokepkg/test$ sudo pip install -r test-ggl-install/requirements.txt 
Obtaining funniest from git+https://source.developers.google.com/p/cloud-q2smart/r/jokepkg#egg=funniest-0.1 (from -r test-ggl-install/requirements.txt (line 1))
Updating ./src/funniest clone
git: 'credential-gcloud.sh' is not a git command. See 'git --help'.
Username for 'https://source.developers.google.com':

Сообщение выглядит так, как будто что-то пытается передать 'credential-gcloud.sh' в git, и git отвечает, что не знает, что это должно для него значить. Похоже, что некоторые внутренние средства, которые Google настроил для аутентификации, нарушены.

Я бы очень хотел, чтобы он правильно устанавливался из частных репозиториев. Я не хочу, чтобы команде разработчиков приходилось менять свой процесс на что-то более громоздкое только из-за того, что механизм аутентификации сломан.

... но это сложно ... потому что pip делает что-то за кулисами для вызова git, и похоже, что Google пытается что-то сделать за кулисами, чтобы сообщить git, как аутентифицироваться.

Я создал проект, который пытается установить простой пакет python в частном репо в облачном источнике Google. Инструкции по его запуску приведены ниже:

( Start up google cloud shell )
$ git clone https://github.com/jnorment-q2/jokepkg.git
# pull down my sample package
$ cd jokepkg
# ( create repo in cloud )
$ git remote add google https://source.developers.google.com/p/cloud-q2smart/r/jokepkg
$ git push google master
# Change to test directory and attempt to build Dockerfile
$ cd test
$ docker build -t test --no-cache .

Это должно попытаться создать зависимость на основе требований в том же контейнере, который мой Jenkins CI создает для использования в качестве эфемерной среды сборки. Для первого он будет успешным, так как это публичное репо и настраивать для безопасности нечего. Он потерпит неудачу, когда дойдет до версии Google. Я не уверен, как решить эту проблему из файла Dockerfile.

Если кто-то может направить меня в правильном направлении, я буду признателен.

Я в порядке с добавлением файла учетных данных в среду сборки / ведомое устройство сборки, но все, что делает Google, похоже, имеет приоритет над кредитами, которые я установил для git:

git config --local credential.username google-svc-account
git config --local credential.helper store --file=/tmp/creds

... Я бы предпочел не привязывать файл requirements.txt к конкретному идентификатору пользователя.


person Cognitiaclaeves    schedule 03.08.2016    source источник


Ответы (1)


Попробуйте сбросить конфигурацию git

git config --global --unset credential.helper

git config --global --add --path credential.helper gcloud
person Ashok    schedule 27.10.2020