繁体   English   中英

如何使用Jenkins管道释放docker镜像

[英]How to release docker image with Jenkins pipeline

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

目前,Maven不习惯构建项目。 当我想发布这个图像的版本时,我在我的电脑上做这个并不理想。

我想保留一个包含我当前版本的docker镜像的文件(如pom.xml)。

我该怎么办,在我的项目中为版本化和maven-release-plugin添加一个pom.xml,添加一个简单的version.txt,我在发布过程中更新了它?

或者是否有类似“docker.version”文件,我不知道这样做?

我在GitHub上发布了我的项目示例: https//github.com/Ameausoone/mongodb-docker-with-data

首先是为每个项目设置一个特定的回购 这有助于在将Docker图像推送到存储库时弄乱它。

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

有多种方法可以将docker镜像推送到存储库。

基于时间和内部编号的标记:

以auth-api为例,我们在jenkins中创建一个名为$ DOCKER_TAG的env变量,并将其设置为创建构建的时间:

DOCKER_TAG: $(date +%Y%m%d).$BUILD_NUMBER 

$ BUILD_NUMBER是Jenkins工作的一部分。 现在标记docker镜像,如下所示:

docker tag DOCKER_IMAGE auth-api/<DOCKER_IMAGE>:<DOCKER_TAG>

(假设您已经构建了docker镜像并在标记上面的步骤之后将其推送到存储库。)

注意:只有匹配REPO-NAME时,Docker才允许推送图像)

它有助于找出docker图像创建日期和时间以及内部版本号。 此映像可以部署到dev,test,prod等不同的环境中。

根据环境进行标记

根据部署环境标记docker镜像,即dev,test,prod。 使用withenv在管道脚本中配置环境变量,它可能如下所示:

docker tag DOCKER_IMAGE auth-api/<DOCKER_IMAGE>:$ENV

这将有助于部署特定的docker镜像。

你甚至可以根据git commit标记docker镜像。[未亲自测试]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM