Учетные данные докера в конвейере Дженкинса

#docker #jenkins

Вопрос:

Я пытаюсь создать базовый конвейер Дженкинса, который создает образ Докера и перемещается в концентратор докеров.

Я не смог найти, как передать учетные данные Docker Hub скрипту bash конвейера

Поэтому я создал учетные данные с идентификатором «dockerlogin» в Дженкинсе.

Мой сценарий конвейера приведен ниже.

 cd /home/jenkins-workspace/workspace/Demo
docker build -t test123/demo:latest . 
docker login --username=MYUSERNAME --password=MYPASSWORD
docker push test123/demo:latest
 

Как я могу передать эти учетные данные(имя пользователя и пароль) скрипту bash?

Спасибо!

Ответ №1:

Чтобы отправить изображение в Docker Hub, вы должны сначала назвать свое локальное изображение, используя имя пользователя Docker Hub и имя репозитория, которое вы создали через Docker Hub в Интернете.

При отправке изображения в Docker Hub необходимо указать имя пользователя Docker Hub как часть имени изображения.

  docker push <hub-user>/<repo-name>:<tag>
 

Причина этого в том, что Docker Hub организует репозитории по имени пользователя. Любое хранилище, созданное под моей учетной записью, включает мое имя пользователя в имя образа Docker.

Пример: Если мой идентификатор пользователя dockerhub-mydockerhubuser, то :

 # docker build -t <your-dockerhub-username>/push-example .
docker build -t mydockerhubuser/demo:latest .
# Enter your DOCKER_USERNAME and DOCKER_PASSWORD
docker login -u="$DOCKER_USERNAME" -p="$DOCKER_PASSWORD"
# docker push <username>/<tagname>
docker push mydockerhubuser/demo:latest 
 

Для получения дополнительной информации : https://docs.docker.com/docker-hub/repos/
Для входа в систему без взаимодействия вы также можете обратиться: https://docs.docker.com/engine/reference/commandline/login/#provide-a-password-using-stdin

Чтобы выполнить команду входа в систему docker не в интерактивном режиме, вы можете установить --password-stdin флажок для ввода пароля через STDIN. Использование STDIN предотвращает попадание пароля в историю оболочки или файлы журнала.
В следующем примере считывается пароль из файла и передается команде входа в систему docker с помощью STDIN:
cat ~/my_password.txt | docker login --username mydockerhubuser --password-stdin

Комментарии:

1. Откуда взялось это значение $DOCKER_USERNAME? Из верительных грамот Дженкинса?

2. @yatta : это ваше имя пользователя учетной записи dockerhub и пароль, которые вы должны предоставить

3. Я проверю это и сообщу здесь еще раз.