我在VSTS中有一个Java应用程序,为此创建了一个构建定义,以生成许多构建工件,其中包括ear文件和服务器配置文件。所有这些构建工件都在最终构建定义任务中压缩。
我们现在希望创建一个Docker文件,该文件将上述构建工件封装在另一个VSTS Docker构建任务中。这将通过构建定义命令行任务完成,值得指出我们的目标docker注册表是公司注册表,而不是Azure。
我现在面临的挑战是如何从压缩工件(或其内容,如果可能)生成所需的docker镜像。有关如何实现这一目标的任何想法?
要从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等)。