Я могу подключиться к обоим частным реестрам от Jenkins и могу получить нужное изображение, однако я не знаю, как перенести это же изображение в другое хранилище.
Обратите внимание, яНасколько я знаю, я использую синтаксис конвейерного сценария, поскольку декларативный синтаксис не поддерживает push / pull или пользовательские реестры.Я также не знаком с синтаксисом Groovy.
Вот что у меня есть для моего Jenkinsfile:
node {
checkout scm
docker.withRegistry('https://private-registry-1', 'credentials-1') {
def image = docker.image('my-image:tag')
image.pull()
docker.withRegistry('https://private-registry-2', 'credentials-2') {
image.push()
}
}
}
Я поместил второй метод withRegistry () в первыйчтобы я мог использовать определенную переменную «image».
Я успешно подключился к первому реестру и вытащил последнее изображение.Из вывода консоли Jenkins:
Login Succeeded
[Pipeline] {
[Pipeline] sh
+ docker pull private-registry-1/my-image:tag
tag: Pulling from my-image
Digest: sha256:XXXXX
Status: Image is up to date for private-registry-1/my-image:tag
Однако вот соответствующий фрагмент ошибки после подключения ко второму реестру:
...
Login Succeeded
[Pipeline] {
[Pipeline] sh
+ docker tag my-image:tag private-registry-2/my-image:tag
Error response from daemon: No such image: my-image:tag
...
Я использую контейнер Jenkins в моей локальной Windowsмашина.Он подключен к Docker для Windows через мой терминал Ubuntu (Подсистема Windows для Linux).