我们运行了一个jenkins服务器,使用docker jenkins plugin在docker容器上构建相应的作业:
每个作业每N分钟检查一次是否对git进行了更改。如果有任何更改,则会创建一个docker容器,并且该容器上的项目已成功构建。最后,在构建之后,docker容器将关闭。
问题: Jenkins触发所有N分钟的新构建而不对git进行任何更改。问题可能是没有工作区可用于检查更改,因为docker容器不再可用。
知道如何解决这个问题吗?
编辑:我们的jenkins服务器无法从公共网络访问。
编辑:解决方法:创建一个肯定会将项目克隆到的新作业 一个工作区(在jenkins master上)并在发生变化时触发一些子工作。这里的不同之处在于master保留了工作区,因此能够检查差异,而一旦容器关闭,Docker容器的工作区就会被删除。
答案 0 :(得分:0)
为什么每隔N分钟检查git更改。 最好的事情是让詹金斯在每次改变之后都能建立起来。 1.检查poll scm选项,但不要在计划中输入任何内容。 2.现在转到git repository文件夹并进入hooks文件夹,在那里你会找到钩子样本,使用post-receive.sample,将其重命名为post-receive,使其成为可执行文件,然后在文件中写入
#!/bin/bash
curl http://yourserver/jenkins/git/notifyCommit?url=<URL of the Git repository
然后保存。现在詹金斯在每次改变Git后都会建立。