如何使用Jenkins管道发布docker映像

如何使用Jenkins管道发布docker映像,docker,jenkins,release,Docker,Jenkins,Release,我有一个构建docker映像的项目,在我的例子中,它是mongo映像的扩展,包含(容器内)数据。我使用这个mongo docker图像进行集成测试 目前,Maven不用于构建项目。当我想发布此图像的一个版本时,我会在我的计算机上执行此操作,这并不理想 我想保留一个文件,其中包含我的docker映像的当前版本(如pom.xml) 我应该怎么做,在我的项目中添加一个pom.xml用于版本化和maven发布插件,添加一个简单的version.txt,在发布过程中使用它进行更新 还是有一个类似“dock

我有一个构建docker映像的项目,在我的例子中,它是mongo映像的扩展,包含(容器内)数据。我使用这个mongo docker图像进行集成测试

目前,Maven不用于构建项目。当我想发布此图像的一个版本时,我会在我的计算机上执行此操作,这并不理想

我想保留一个文件,其中包含我的docker映像的当前版本(如pom.xml)

我应该怎么做,在我的项目中添加一个pom.xml用于版本化和maven发布插件,添加一个简单的version.txt,在发布过程中使用它进行更新

还是有一个类似“docker.version”的文件我不知道该怎么做


我在GitHub上发布了一个我的项目示例:

第一件事是为您拥有的每个项目制定一个特定的回购协议。这有助于在将docker映像推送到存储库时不会弄乱它

您可以使用管道脚本中的shell脚本/命令来执行此处提到的所有命令

将docker映像推送到存储库的方式有多种

基于时间和构建编号的标记:

以auth api为例,我们在jenkins中创建了一个名为$DOCKER_标记的环境变量,并将其设置为创建构建的时间:

DOCKER_TAG: $(date +%Y%m%d).$BUILD_NUMBER 
$BUILD_编号作为Jenkins作业的一部分提供。现在标记docker图像,如下所示:

docker tag DOCKER_IMAGE auth-api/<DOCKER_IMAGE>:<DOCKER_TAG>
这将有助于具有特定于部署的docker映像

您甚至可以基于git commit标记docker映像。[未经个人测试]

我太“Mavenize”了,不想简单地使用git标记或jenkins build number,但我会简单地使用它!谢谢
docker tag DOCKER_IMAGE auth-api/<DOCKER_IMAGE>:$ENV