Как выполнить развертывание с локального на удаленное docker репо (dockerhub) в artifactory pro? - PullRequest
0 голосов
/ 08 мая 2020

Я создал удаленное docker репо (dockerhub) и настроил «Удаленную аутентификацию». Я хотел бы скопировать или переместить свои образы контейнеров из моего локального репозитория docker (промежуточного репозитория) в dockerhub.

Есть ли способ сделать это через REST API? Это вообще поддерживается? Может быть, аутентификация предназначена только для получения личных изображений?

1 Ответ

0 голосов
/ 19 мая 2020

Есть ли способ сделать это через REST API?

Согласно документации Продвигать Docker Изображение Я не совсем уверен, так как это там упоминалось, что

Продвигает изображение Docker из одного репозитория в другой. Поддерживается только локальными репозиториями.

Что касается

Поддерживается ли это вообще?

есть некоторые другие вызовы REST API, которые может использоваться для распространения сборок или тегов на Bintray. Так может быть, но я не совсем уверен. Вы можете ознакомиться с документацией Artifactory REST API.

Может ли аутентификация предназначена только для получения личных изображений?

Нет, также для pu sh.

Поскольку у меня было подобное требование в моей среде, я хотел бы предложить другой возможный подход к решению, который работал у меня.

В этом примере предполагается, что в экземпляре Artifactory есть. Кроме того, я использую podman в своей среде RHEL 7.x, который установлен на тех же хостах, которые обслуживают приложение Artifactory Java. Обратите внимание, что я должен использовать прокси-сервер компании, что может не подходить для вашей среды.

# Provide the information for the local proxy, otherwise there will be no internet access
# Doc: https://bugzilla.redhat.com/show_bug.cgi?id=1682970
# Doc: https://access.redhat.com/solutions/3939131
export HTTPS_PROXY=http://localhost:3128

# Login in into Artifactory
podman login <repo-local>.example.com -u <artifactory-user>
# Pull the required image(s)
podman pull docker://<repo-local>.example.com/<image-name>:<image-tag>

# Re-tag the image(s) to the remote repository 
podman tag <repo-local>.example.com/<image-name>:<image-tag> <repo-remote>/<image-name>:<image-tag>

# Login in into the remote repository
podman login <repo-remote> -u <remote-user>
  password:
  Login successful!
# Pushthe required image(s)
podman push <repo-remote>/<image-name>:<image-tag>

# Clean up after work and free local storage space
podman image rm --all --force
...