#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. Я проверю это и сообщу здесь еще раз.