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

前端之家收集整理的这篇文章主要介绍了如何使用Jenkins管道发布Docker映像 前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我有一个构建docker映像的项目,在我的情况下,它是mongo映像的扩展,其中包含(在容器内部)数据.我使用此mongo docker映像进行集成测试.

目前,尚未使用Maven构建项目.当我要发布此图像的版本时,我在计算机上这样做并不理想.

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

我应该怎么做,在我的项目中添加一个pom.xml以进行版本控制和maven-release-plugin,并添加一个简单的version.txt在发布过程中进行更新?

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

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

最佳答案
第一件事是为您拥有的每个项目都有一个特定的仓库.这有助于在将Docker映像推送到存储库时不会弄乱它.

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

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

Tagging based on Time and Build Number:

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

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

$BUILD_NUMBER是Jenkins工作的一部分.现在,如下标记docker映像:

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

(假设您已经构建了docker镜像,并在执行上述步骤后将其推送到存储库中.)

注意:Docker仅在与REPO-NAME匹配时才允许推送图像)

它有助于找出Docker映像创建的日期和时间以及内部版本号.该映像可以部署到不同的环境,例如dev,test,prod.

Tagging based on the environment

根据部署环境(即开发,测试,生产)标记Docker映像.
使用withenv在管道脚本中配置环境变量,该变量可能类似于以下内容

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

这将有助于具有特定于部署的Docker映像.

您甚至可以根据git commit标记docker映像.[未经亲自测试]

猜你在找的Docker相关文章