从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,需要先点击下图的版本库,在切换回来,才能关联,是否有大神可以帮忙解决?
网友评论