Я хотел бы вставить встроенный образ докера в центральный докер-концентратор в процессе автоматической сборки. Чтобы сделать это, мне нужно сначала войти в систему, а затем делать толчок.
Соответствующий раздел файла .gitlab-ci.yml
следующий:
docker-deploy:
image: docker:latest
stage: deploy
before_script:
- echo $HUB_PW | docker login -u $HUB_USER --password-stdin
after_script:
- docker logout
script:
- docker push <mytag>:$CI_PIPELINE_ID
Я получаю следующую ошибку в Gitlab CI
$ echo $HUB_PW | docker login -u $HUB_USER --password-stdin
Error response from daemon: Get https://registry-1.docker.io/v2/: unauthorized: incorrect username or password
Соответствующие переменные среды $HUB_PW
и $HUB_USER
установлены правильно.
Я пытался сделать то же самое в linux bash, с доступным докером, с тем же результатом.
Однако я могу войти в Docker интерактивно.
docker login
Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.
Username: <myusername>
Password:
Login Succeeded
Когда я выхожу из системы, я получаю
docker logout
Removing login credentials for https://index.docker.io/v1/
Нет способа сделать интерактивный вход в систему при автоматической сборке. И я не понимаю разницы в URL-адресах концентраторов, в зависимости от использования интерактивного входа в систему и входа с паролем.
Кто-нибудь знает, как заставить работать эту настройку?