Определение сборки VSTS - Создание образа Docker из приложения Java

У меня есть приложение Java в VSTS, для которого было создано определение сборки для создания ряда артефактов сборки, которые включают файл Ear и файл конфигурации сервера. Все эти артефакты сборки заархивированы в финальной задаче определения сборки.

Теперь мы хотим создать файл Docker, который инкапсулирует указанные выше артефакты сборки в другую задачу сборки VSTS Docker. Это будет сделано с помощью задачи командной строки определения сборки, и стоит отметить, что наш целевой реестр докеров - это корпоративный реестр, а не Azure.

Проблема, с которой я сейчас сталкиваюсь, заключается в том, как сгенерировать требуемый образ докера из заархивированного артефакта (или его содержимого, если возможно). Есть идеи о том, как этого можно достичь?


person hitman126    schedule 17.09.2018    source источник


Ответы (1)


Чтобы сгенерировать образ докера из файла zip / tar, вы можете использовать команду docker load:

docker load < test.tar.gz

Loaded image: test:latest
$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
test                latest              769b9341d937        7 weeks ago         2.489 MB

После этого вы можете отправить образ в личный реестр:

    docker login <REGISTRY_HOST>:<REGISTRY_PORT>
    docker tag <IMAGE_ID> <REGISTRY_HOST>:<REGISTRY_PORT>/<APPNAME>:<APPVERSION>
    docker push <REGISTRY_HOST>:<REGISTRY_PORT>/<APPNAME>:<APPVERSION>

Example :

    docker login repo.company.com:3456
    docker tag 769b9341d937 repo.company.com:3456/test:0.1
    docker push repo.company.com:3456/test:0.1

Итак, в конце конвейера сборки добавьте задачу командной строки и выполните указанные выше команды (измените значения на местоположение вашего zip-файла, имя пользователя, пароль, URL-адрес реестра и т. Д.).

person Shayki Abramczyk    schedule 17.09.2018
comment
Большое спасибо за оперативную обратную связь @Shayki Abramczyk. К сожалению, я, похоже, наткнулся на кирпичную стену из-за сбоя команды загрузки докеров в моей задаче конвейера сборки. - Сначала я попробовал выполнить команду следующим образом: docker load * .jar.zip и получил сообщение об ошибке. Docker load не принимает аргументов. - Во втором случае я попробовал команду следующим образом: docker load -i * .jar.zip и получил сообщение об ошибке: Ошибка при обработке файла tar ..... недопустимый заголовок tar - person hitman126; 17.09.2018