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

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. 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端口的访问。

阿里云服务器上通过Docker部署redmine的更多相关文章

  1. 阿里云服务器上在docker部署jenkins

    1.查询jenkins:docker search jenkins 2.拉取jenkins镜像 docker pull jenkins/jenkins:lts 3.新建jenkins的工作目录: mk ...

  2. 云服务器上利用Docker部署Django项目

    转载别人的,请看下面链接 云服务器上利用Docker部署Django项目

  3. 如何在云服务器上使用Docker部署easy-mock

    部署Easy-mock 安装Docker Ubuntu下安装Docker 安装Docker-compose Ubuntu下安装docker-compose 使用Docker部署 Easy-Mock D ...

  4. unigui在阿里云服务器上部署

    unigui在阿里云服务器上部署 客户租用了阿里云WINDOWS2008服务器,部署UNIGUI发现死活不行,WINDOWS2008自带的IE9浏览器打开URL,卡死在loading...... 我远 ...

  5. Linux学习2-在阿里云服务器上部署禅道环境

    前言 以前出去面试总会被问到:测试环境怎么搭建?刚工作1-2年不会搭建测试环境还可以原谅自己,工作3-5年后如果还是对测试环境搭建一无所知,面试官会一脸的鄙视. 本篇以最简单的禅道环境搭建为例,学习下 ...

  6. 阿里云Linux CentOS 7 Docker部署使用gogs搭建自己的git服务器

    一.前言 Git是目前优秀和流行的源代码管理工具.而GitHub是一个面向开源及私有软件项目的托管云平台,但开源免费,私有收费.而公司出于商业化等目的需要搭建自己的源代码托管服务器.通过网上了解Gog ...

  7. 阿里云服务器上搭建seafile专业版

    因为官方一键安装教程在阿里云服务器上无法安装,由于水平有限,无法解决,所以选择手动安装 参考资料: 1,.腾讯云搭建seafile服务器 2.How to Install Seafile with N ...

  8. 阿里云服务器上安装mysql的心路历程(博友们进来看看哦)

    在阿里云花了100买了一台云服务器,配置如下: CPU: 1核 内存: 512MB 数据盘: 0G 带宽: 1Mbps 阿里云服务器安装mysql搞得我想吐血,搞了一个多星期,现在才搞好,而且,还有许 ...

  9. 在阿里云服务器上安装完成并启动Tomcat后,通过http不能访问--解决办法

    在阿里云服务器上安装完成并启动Tomcat后,通过http不能访问的原因是阿里云平台为了安全设置了安全组策略,必须我们授权的端口,其他计算机才能通过http访问 解决办法:(这里以阿里轻量应用服务器为 ...

随机推荐

  1. Dubbo服务的运行方式

    1.使用Servlet容器运行(Tomcat.Jetty)等 ---不可取 缺点:增加复杂性(端口,管理) 浪费资源(内存) 2.自建Main方法类来运行(Spring容器) ---不建议(本地调试可 ...

  2. Web API中的路由(一)——约定路由

    一.Web API中的路由概念 路由的作用用一句话说明:通过request的uri找到处理该请求的Controller,Action,以及给Action的参数赋值. 一些路由的基本概念: route: ...

  3. 使用 boot-repair 对 Windows + Ubuntu 双系统引导修复

    问题描述:     由于在windows上进行更新/重装/修改了引导设置以后,windows会“自私”地重写引导,导致Ubuntu系统引导消失而无法选择Ubuntu启动.

  4. Java技能

    1.思维导图 Java知识思维导图 2 3.Java理解 深入理解Java:注解(Annotation)自定义注解入门 4.JAVA数据类型 基本数据类型 布尔类型:boolean 数值类型: 定点类 ...

  5. python模块之自定义模块

    模块概述 到此之前,我们都是在一个py文件里操作,接下来,我们学习模块的内容,可以从其他文件引入内容(如函数等) 1. 什么是模块 一个py文件就是一个模块,模块是一些相似功能的集合体 2. 为什么要 ...

  6. 细说tomcat之集群session共享方案

    1. Tomcat Cluster官网:http://tomcat.apache.org/tomcat-7.0-doc/cluster-howto.htmlTomcat原生支持的集群方案,通过组播消息 ...

  7. C#中连接MySQL数据

    小结一下MySQL在C#中是如何连接的,并做一些简单的选择(SELECT).插入( INSERT).更新( UPDATE).删除(DELETE ) (一)连接 a) Firstly, you shou ...

  8. 几个js 拓扑图库

    计划做一个元数据平台, 因为要包含血缘分析功能, 所以要调研一下js 拓扑图库, 候选对象主要参考知乎上的问答, javascript 有哪些适合做网络拓扑图形展示的包? https://www.zh ...

  9. C++ WString与String互相转换

    std::wstring StringToWString(const std::string& str) { , str.c_str(), -, NULL, ); wchar_t *wide ...

  10. [译]Use Dependency Injection In WebForms Application

    怎么在已用的WebForm应用中使用DI 假设有一个电影网站,有个页面会列出最近热门的电影.这个项目中使用了仓储模式来获取数据. public partial class Default : Syst ...