VSTS构建定义-从Java应用程序创建Docker映像

时间:2018-09-17 09:18:22

标签: docker azure-devops dockerfile docker-registry azure-pipelines-build-task

我在VSTS中有一个Java应用程序,已为其创建了一个构建定义以生成许多构建工件,其中包括耳文件和服务器配置文件。所有这些构建工件都将在最终的构建定义任务中压缩。

我们现在希望创建一个Docker文件,将上述构建工件封装在另一个VSTS Docker构建任务中。这将通过构建定义命令行任务完成,值得指出的是,我们的目标Docker注册表是公司注册表,而不是Azure。

我现在面临的挑战是如何从压缩的工件(或其内容,如果可能)中生成所需的docker映像。关于如何实现这一目标的任何想法?

1 个答案:

答案 0 :(得分:0)

要从zip / tar文件生成docker映像,可以使用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等)。