阿里云服务器上通过Docker部署redmine

背景:在日常工作的过程中会遇到各种各样的问题,每个问题来了之后需要花时间解决。这里就面临两个问题.

1:问题责任不明确,有时候会遇到数据库或者物理服务器的问题,这时候就需要把相应问题指派给相应的人,传统手工发邮件的方式比较随意难以管理,需要一个统一的问题分派系统。

2:问题记录不全。这导致有些复杂问题时间久了就会遗忘而放之不管;而普通问题时间久了解决的方法也会忘记,下次遇到类似问题还需要花很多时间处理;最后简单问题没有记录导致无法对系统的薄弱之处进行统计分析。

综上需要搭建进行问题追踪系统。

前期准备使用bugzilla进行搭建,但是发现bugzilla搭建比较复杂且中文支持较差,不适合现有工作环境。通过网上的查找,觉得redmine比较适合我们现在的团队,轻量且易部署且插件多,可扩展性较强。

 

基础环境:阿里云服务器

考虑到需要有邮件推送的功能,公司内部服务器又连不上外部网络,为了避开GFW的软件下载限制,故将系统部署在阿里云香港服务器上。

 

Redmine安装部署

Redmine是用Ruby开发的基于web的项目管理软件,是用ROR框架开发的一套跨平台项目管理系统,据说是源于Basecamp的ror版而来,支持多种数据库,有不少自己独特的功能,例如提供wiki、新闻台等,还可以集成其他版本管理系统和BUG跟踪系统,例如Perforce、SVN、CVS、TD等等。这种 Web 形式的项目管理系统通过“项目(Project)”的形式把成员、任务(问题)、文档、讨论以及各种形式的资源组织在一起,大家参与更新任务、文档等内容来推动项目的进度,同时系统利用时间线索和各种动态的报表形式来自动给成员汇报项目进度。

1,安装redmine,postgresql

  1. docker pull sameersbn/redmine  
  2. docker pull sameersbn/postgresql  

不推荐官方的安装方式,版本不匹配会导致redmine起不来。

数据库用pgsql,mysql都是可以的

2,创建映射目标

  1. mkdir -p /home/docker/redmine/postgresql  
  2. mkdir -p /home/docker/redmine/redmine  

3,创建容器

  1. docker run --name=postgresql-redmine -d --env='DB_NAME=redmine_production' --env='DB_USER=redmine' --env='DB_PASS=password' --restart=always --volume=/home/docker/redmine/postgresql:/var/lib/postgresql sameersbn/postgresql  
  2.   
  3. docker run --name=redmine -d --link=postgresql-redmine:postgresql --publish=10083:80 --env='REDMINE_PORT=10083' --restart=always --volume=/home/docker/redmine/redmine:/home/redmine/data sameersbn/redmine  (此命令为不需要邮件服务的命令,需要邮件服务的命令见下)

4,查看状态

  1. docker@default:~/redmine/redmine/plugins$ docker ps  
  2. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES  
  3. 32f8f0192bd9 sameersbn/redmine "/sbin/entrypoint...." 9 hours ago Up 2 hours 443/tcp, 0.0.0.0:10083->80/tcp redmine  
  4. 857795a66334 sameersbn/postgresql "/sbin/entrypoint.sh" 9 hours ago Up 9 hours 5432/tcp postgresql-redmine  

在这里要注意,如果你用了虚拟机,创建容器的时候,要登录虚拟机中创建。

5,登录与访问

  1. 地址:http://IP:10083/  
  2. 默认用户名:admin  
  3. 默认密码:admin  

6,插件安装,以redmine_agile为例

常用插件列表:https://github.com/sameersbn/docker-redmine/wiki/plugins

  1. # cd /home/docker/redmine/redmine/plugins  
  2. # git clone https://github.com/RCRM/redmine_agile.git  
  3. # docker restart redmine  

登录到后台,点击项目,查看所有问题就能看到安装的插件了。

 

Redmine邮件配置

用了sameersbn/redmine,在网上查了一下,很多人都说修改configuration.yml这个文件,但是我发现,登录到容器中,修改这个文件,重启容器后,这个文件又恢复了,无法修改。后来我想把这个配置文件的目录,通过--volume映射到真实的服务器上,但是映射后容器无法重启。

docker run --name=redmine -d --link=postgresql-redmine:postgresql --publish=10083:80 \
--env='REDMINE_PORT=10083' --env='SMTP_USER=*********@163.com' --env='SMTP_PASS=******' \
--env='SMTP_PORT=465' --env='SMTP_HOST=smtp.163.com' --env='SMTP_DOMAIN=smtp.163.com' \
--env='SMTP_AUTHENTICATION=login' --env='SMTP_TLS=true' --restart=always \
-v /src/docker/redmine/redmine:/home/redmine/data sameersbn/redmine

 

注意:SMTP_PASS是网易提供的授权码,不是邮箱的密码。申请邮箱后,在个人设置中开通smtp,pop3服务

SMTP_TLS如果为false会导致发送邮件出现"end of file reached"错误。

SMTP_PORT这里需要设置为非25端口,因为阿里云默认封25端口。

格式问题:yml文件自身格式,空格缩进等要求严格,建议在理解基础上拷贝,因为拷贝时经常造成空格异位等问题。另外引号和特殊字符等等也均有可能造成问题。

启动后通过docker ps找到redmine的container-id通过dockers exec -it container-id /bin/bash进入redmine,

修改conf目录下setting里mail_from为你163账户,将default_host修改为阿里云服务器地址:10083

 

在设定redmine之前,最好确认一下是否在redmine所在环境之上邮件收发是否能正常动作,防止一些低级错误,最后发送测试邮件

telnet SMTP.163.com 465

 

最后在阿里云服务器上增加安全规则,放开10083端口的访问。

 

posted @ 2017-11-09 10:40  赭山东路  阅读(542)  评论(0编辑  收藏  举报