我有一个构建docker镜像的项目,在我的例子中,它是mongo image的扩展,它包含(在容器内)数据。我使用这个mongo docker镜像进行集成测试。
目前,Maven并不习惯于构建项目。当我想发布这个图像的版本时,我在我的电脑上做这个并不理想。
我想保留一个包含我当前版本的docker镜像的文件(如pom.xml)。
我该怎么做,在我的项目中添加一个pom.xml用于版本化和maven-release-plugin,添加一个简单的version.txt,我在发布过程中更新了它?
或者是否有类似“docker.version”文件我不知道这样做?
我在GitHub上发布了我的项目示例:https://github.com/Ameausoone/mongodb-docker-with-data
答案 0 :(得分:3)
首先要为您拥有的每个项目设置一个特定的回购。这有助于在将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镜像并在标记之后将其推送到存储库中。)
注意:Docker只允许在与REPO-NAME匹配的情况下推送图像。
有助于找出docker图像创建日期和时间以及内部版本号。此映像可以部署到dev,test,prod等不同的环境中。
根据环境进行标记
根据部署环境标记docker镜像,即dev,test,prod。
使用withenv
在管道脚本中配置环境变量,可能如下所示:
docker tag DOCKER_IMAGE auth-api/<DOCKER_IMAGE>:$ENV
这将有助于部署特定的docker镜像。
你甚至可以根据git commit标记docker镜像。[未亲自测试]