2016-12-06 1 views
0

У меня проблема, нажав изображение докера в локальном реестре. У меня есть локальный реестр, например some.registry.com. Мой сценарий выглядит следующим образом (build.sh):Cant push docker image to local registry .sh script, вызванный из plink - без базовых учетных данных auth

#!/bin/bash 
# some commands 
# build image 
# tag image 
docker push some.registry.com/my/imagename 

Этот скрипт работает отлично, если я запускаю его из текущей системы (я бегу на Ubuntu 16.04):

sudo ./build.sh 

Но мне нужно, чтобы вызвать этот сценарий из другого сценария на машине Windows. я использую для этого plink Этот сценарий выглядит (other_script.bat):

REM do something 
call D:\install\plink.exe -ssh -v -t [email protected] -pw PASS "sudo -S <<< 'PASS' /home/user/scr/build.sh" 

Все команды в build.sh работают отлично (построить изображение, бирка e.t.c изображение). Но когда вызывается docker push, я получаю сообщение no basic auth credentials

Есть ли у кого-нибудь предложение?

ответ

0

Вы пытались ввести ваши учетные данные в файл на локальном компьютере? Создать файл json.config под C: \ Users \ .docker или Linux в $ HOME/.docker/config.json и скопируйте следующее содержимое этого файла

{ 
     "auths": { 
       "your.registry.com": { 
         "auth": "aGVja2VhOiFoZWNrb25vXXXX" 
       } 
     } 
} 

Обратите внимание, что строка аутентификации IST ваш имя пользователя пароль в кодировке BASE64. Если у вас есть случайный хост Linux-докеров, в котором вы вошли в реестр, прежде чем вы сможете также взять весь файл json.config из домашнего каталога.

Sidenote: У нас была аналогичная проблема с io.fabric docker-plugin и была решена с помощью описанных выше шагов.

+0

Спасибо за ваш ответ. Но может быть, я недостаточно понимаю вас. У меня нет докеров на оконной машине. Должен ли я использовать какой-то магазин кредитов или что-то еще? Но я думаю, что решаю свою проблему. Я добавил в свой скрипт ('build.sh') перед нажатием команды входа в docker для изображения: ' docker login -u user -p pass https://reg.com docker push ... ' – arthas

+0

Привет, вход в docker на хост - это вариант. Я имел в виду нечто вроде входа в любой публичный или закрытый репозиторий, для которого у вас есть учетные данные. При входе в систему команда хранит закодированные учетные данные в $ HOME/.docker/config.json в Linux или% USERPROFILE% /. Docker/config.json в Windows. – hecko84

Смежные вопросы