我有一个构建Docker映像的项目,在我的情况下,它是Mongo Image的扩展,其中包含(内部)数据。我使用此Mongo Docker图像来集成测试目的。
目前,Maven尚未用于构建项目。当我想发布此图像的版本时,我会在计算机上这样做,这不是理想的。
我想保留一个文件,其中包含我当前版本的docker映像(例如pom.xml)。
我该怎么办,在我的项目中添加一个pom.xml进行版本启动和maven-release-plugin,添加一个简单的版本.txt,我在发布过程中更新了它?
还是我不知道这样做的" docker.version"文件?
我在github上发布了我的项目的示例:https://github.com/ameausoone/mongodb-docker-with-data
首先是为您拥有的每个项目都有一个特定的回购。这有助于不将Docker图像推到存储库时。
您可以使用管道脚本中的Shell脚本/命令执行此处提到的所有命令。
有多种方式将Docker图像推向存储库。
基于时间和构建编号标记:
以Auth-Api的示例为例,我们在其中创建了一个ENV变量,称为$ Docker_tag在Jenkins中,并将其设置为创建构建的时间:
DOCKER_TAG: $(date +%Y%m%d).$BUILD_NUMBER
$ build_number是詹金斯作业的一部分。现在标记Docker映像如下:
docker tag DOCKER_IMAGE auth-api/<DOCKER_IMAGE>:<DOCKER_TAG>
(假设您已经构建了Docker映像,并将其推到标记之后 - 上述步骤。)
注意:Docker允许仅在匹配repo-name时才推动图像)
它有助于找出Docker Image创建日期和时间以及构建编号。该图像可以部署到不同的环境,例如开发,测试,产品。
基于环境标记
基于部署环境,即开发,测试,产品标记Docker映像。使用withenv
在管道脚本中配置环境变量,它看起来像这样:
docker tag DOCKER_IMAGE auth-api/<DOCKER_IMAGE>:$ENV
这将有助于拥有特定的Docker图像。
您甚至可以基于git commit标记docker映像。[未亲自测试]