美文网首页运维docker
redmine与gitlab集成

redmine与gitlab集成

作者: 安静的冰棒 | 来源:发表于2019-01-10 15:29 被阅读152次

    从redmine的迁移到与gitlab集成中,确实碰到了一些问题,写这篇文章也是为了帮助自己记录一些问题的解决。原先我们的redmine是搭建在windows主机上的,gitlab是搭建在另外一台linux主机的docker里的,由于redmine访问gitlab仓库不是通过http访问,而是直接读取gitlab的data文件,因而为了方便起见,也将redmine迁移到了linux服务器上。

    为了方便,直接使用了docker上的redmine最新镜像,执行命令docker pull redmine,这样就下载了redmine的最新版本(我这里是4.0),当然也可以指定版本如docker pull redmine

    下载镜像后就需要启动容器,这时又遇到了映射目录的问题。

    第一:由于redmine需要访问gitlab的仓库,gitlab和redmine都是单独的容器,这时将gitlab的仓库路径映射到宿主机(本文默认已经映射完成),这时在将宿主机上的data目录映射到redmine容器内部,供redmine访问。

    第二:由于需要保留原先的redmine数据,需要连接原来redminie的数据库。docker的redmine镜像的默认数据库是sqlite,这时需要替换成我们原本使用的mysql,需要修改文件夹/usr/src/redmine/config目录下的database.yml:

为了今后修改方便,我将redmine容器内的/usr/src/redmine/config目录映射到了宿主机上,并启动容器:docker run -d -p 9776:3000 --name redmine -v /home/redmine/config:/usr/src/redmine/config -v /home/gitlab/data/git-data/repositories:/home/gitlab/data/git-data/repositories docker.io/redmine --restart=always

这时redmine就可以访问了:

这时需要测试一下redmine是否可以正常操作,实际结果是部分操作会报404错误,跟踪日志发现是由于版本不同,部分表字段不一致造成,我对比了2个版本的表字段,缺失的字段补上,目前的功能都能够正常访问。

    第三:使用redmine过程中,发现点击附件(例如图片等)会报404,原来是附件没有迁移过来。这时又到原来的windows主机上将附件取过来,放到容器内部docker cp XXXXXX   ID:XXXXXX

    以上就完成了redmine的迁移,接下来是与gitlab的集成。

    首先登陆redmine,进入管理->配置->版本库,配置如下:

生成一个KEY供gitlab使用,用于引用问题的关键字记得加上*号(没过分关注*号的意义),最后配置关键字并保存。

    接着配置某个项目的版本库,如图

配置完成后,点击该项目的版本库,就可以查看git上的提交情况,如图:

最后配置gitlab的系统钩子,使得研发人员在提交gti时输入redmine配置的关键字,可以自动更新redmine上任务的状态,如图

这就完成了redmine与gitlab的集成,我们测试一下,如研发人员有一个开发功能#10562,当研发人员在开发过程中提交git时输入dev #10562,这时这个任务就由新建状态自动变为进行中状态,当研发人员完成整个功能的开发,提交git时输入finish #10562,该任务由进行中的状态自动变为已完成状态(这些状态的对应就是上述redmine中配置的关键字)

遗留问题:每次研发提交git时,redmine的这些任务不会自动关联git,需要先点击下图的版本库,在切换回来,才能关联,是否有大神可以帮忙解决?

相关文章

网友评论

    本文标题:redmine与gitlab集成

    本文链接:https://www.haomeiwen.com/subject/rmharqtx.html