虽然在开源领域Redmine是做需求管理与bug追踪较好的选择之一,但是相较于Jira,在功能上差距还是非常之大的。这也包括Jira提供的Webhook的功能。虽然不一定能够实现完全的替代,但是结合使用Redmine的插件开发,对进行实践中对于选择开箱即用的Jira还是免费简单的Redmine,Jira和众多工具的集成能力可能成为选择的重要因素。对于有一定开发能力的实践者,建议可以研究一下Redmine的插件机制,对自己所需要的功能进行扩展。这篇文章介绍一下Redmine4.0.3的开发与验证环境准备的方法。
环境准备
这里使用Easpack上已经准备好的Redmine的镜像(此镜像就是官方镜像,后续会简单做些增强,并没有像bitnami那样有定制、log和网站连接的集成)。按照如下步骤即可完成环境的准备
事前准备
环境:CentOS7.6
Docker:>= 1.13.1
Docker-compose: >= 1.13.0
启动服务
Redmine启动需要设定MySQL数据作为其数据存储的方式,然后需要去的官方的redmine的包部署在ROR(RubyOnRails)的环境中。通过镜像的方式可以快速地将环境搭建起来,按照如下步骤即可。
- 步骤1: git clone easypack的项目
- 步骤2: 启动Redmine服务
进入到Redmine的docker-compose.yml所在目录,使用docker-compose启动服务
顺次执行如下命令:
cd easypack/containers/alpine/redmine
docker-compose up -d
注意事项:
此docker-compose.yml文件中包含MySQL的容器与Redmine的容器,虽然设立的依赖关系,还是很容易出现MySQL的数据库未准备完成的时候Redmine容器启动失败的问题,所以此问题只需要稍等一会(至于稍等多大一会,可以根据docker logs redmine_redminedb_1的结果确认MySQL是否就绪来判断),再次执行docker-compose up -d命令即可
- 更为详细的说明
更为详细的说明可以参看以前redmine3.3时整理的内容,具体链接如下所示:
环境确认
- 服务信息如下所示:
liumiaocn:redmine liumiao$ docker-compose ps
Name Command State Ports
-------------------------------------------------------------------------------------
redmine_redmine_1 /docker-entrypoint.sh rail ... Up 0.0.0.0:3000->3000/tcp
redmine_redminedb_1 docker-entrypoint.sh mysqld Up 3306/tcp
liumiaocn:redmine liumiao$
- 版本详细如下所示
开发环境的准备
Redmine由于是基于Ruby On Rails进行开发的软件,所以开发环境只需要在此基础上即可。但是由于网络和版本等问题。这个“即可”会白白浪费很多开发者的时间。而且开发者的环境往往会受各种复杂的本地因素的影响,这就是在DevOps实践中经常说的“开发环境的一致性”的问题,而使用容器化的上述环境,则可以在很大程度上避开这个问题。可以直接在启动的Redmine的容器中进行Plugin开发和验证。
只需要如下即可进入到Redmine的开发与结果验证环境之中
docker exec -it redmine_redmine_1 sh
- 确认环境变量
确认如下环境变量设定值为production
echo $RAILS_ENV
- 执行日志示例
liumiaocn:redmine liumiao$ docker exec -it redmine_redmine_1 sh
# echo $RAILS_ENV
production
#
事前确认
通过如下URL即可访问Redmine安装的Plugin的相关信息
注:上述由于在本地机器进行访问,因此使用localhost,实际如果Redmine不在本机启动服务的情况化,换成IP或者可以访问的域名即可。
Plugins目录
Redmine中Plugin起效的目录,在其4.0.3的官方镜像中则是在/usr/src/redmine/plugins,进入上述启动的Redmine的容器中可以看到,目前此目录下只有一个README文件的存在。
liumiaocn:redmine liumiao$ docker exec -it redmine_redmine_1 sh
# pwd
/usr/src/redmine
# ls plugins
README
# cat plugins/README
Put your Redmine plugins here.
#
总结
这样就非常简单地准备好了Redmine4.0.3的Plugin开发的环境,接下来将进一步介绍Plugin开发的步骤和方法。