Да, docker-image-resource может это сделать. Вы можете найти множество документов / примеров на github: https://github.com/concourse/docker-image-resource
Вот что я сделал для создания и отправки изображений в aws ecr.
Сначала определите его как ресурс в вашем конвейере инастроить это.
resources:
- name: ecr-repository
type: docker-image
source:
repository: xxxx.dkr.ecr.eu-central-1.amazonaws.com/some/ecr/path
Поскольку я работал с экземпляром ec2, мне не нужно было устанавливать какие-либо учетные данные. Если вы хотите отправить в докер-концентратор, вам нужно настроить ресурс с вашими учетными данными.
Итак, теперь конкурс знает этот ресурс и его можно использовать на этапах заданий. В случае сборки / push вы должны использовать шаг put следующим образом:
- put: ecr-repository
params:
build: .
Если ваш Dockerfile не находится в корне вашего ресурса, вы можете либо установить build для указания этого пути, либоиспользуйте опцию dockerfile. Смотрите документы для более.
Альтернативно, есть реестр-образ-ресурс. Я сам этим еще не пользовался, но если у вас уже есть работающая сборка, вы, возможно, можете просто отдать тот артефакт, который у вас есть, и перенести его туда, куда вы хотите. Конфигурация, вероятно, такая же (укажите URL, учетные данные) и используйте ее в шаге.
https://github.com/concourse/registry-image-resource
РЕДАКТИРОВАТЬ:
Оба ресурса имеют параметр «дополнительные_флаги». Чтобы не изменять задачу сборки, вы можете вывести изображение в виде архива вместе с файлом, в котором указаны теги, которые вы хотите нажать.
docker save image:latest | gzip > ./outdir/image.tar.gz
echo "some foo tags" > ./outdir/tags_file
Затем вы можете загрузить это изображение с дополнительными тегами, подобными этому
put: registry-resource
params:
image: ./outdir/image.tar.gz
additional_tags: ./outdir/tags_file
Конечно, вы должны указать 'outdir' как вывод в первом задании и как ввод во втором заданиичтобы собеседники передали файлы.