阿里云服务器上通过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
- docker pull sameersbn/redmine
- docker pull sameersbn/postgresql
不推荐官方的安装方式,版本不匹配会导致redmine起不来。
数据库用pgsql,mysql都是可以的
2,创建映射目标
- mkdir -p /home/docker/redmine/postgresql
- mkdir -p /home/docker/redmine/redmine
3,创建容器
- 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
- 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,查看状态
- docker@default:~/redmine/redmine/plugins$ docker ps
- CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
- 32f8f0192bd9 sameersbn/redmine "/sbin/entrypoint...." 9 hours ago Up 2 hours 443/tcp, 0.0.0.0:10083->80/tcp redmine
- 857795a66334 sameersbn/postgresql "/sbin/entrypoint.sh" 9 hours ago Up 9 hours 5432/tcp postgresql-redmine
在这里要注意,如果你用了虚拟机,创建容器的时候,要登录虚拟机中创建。
5,登录与访问
- 地址:http://IP:10083/
- 默认用户名:admin
- 默认密码:admin
6,插件安装,以redmine_agile为例
常用插件列表:https://github.com/sameersbn/docker-redmine/wiki/plugins
- # cd /home/docker/redmine/redmine/plugins
- # git clone https://github.com/RCRM/redmine_agile.git
- # 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的更多相关文章
- 阿里云服务器上在docker部署jenkins
1.查询jenkins:docker search jenkins 2.拉取jenkins镜像 docker pull jenkins/jenkins:lts 3.新建jenkins的工作目录: mk ...
- 云服务器上利用Docker部署Django项目
转载别人的,请看下面链接 云服务器上利用Docker部署Django项目
- 如何在云服务器上使用Docker部署easy-mock
部署Easy-mock 安装Docker Ubuntu下安装Docker 安装Docker-compose Ubuntu下安装docker-compose 使用Docker部署 Easy-Mock D ...
- unigui在阿里云服务器上部署
unigui在阿里云服务器上部署 客户租用了阿里云WINDOWS2008服务器,部署UNIGUI发现死活不行,WINDOWS2008自带的IE9浏览器打开URL,卡死在loading...... 我远 ...
- Linux学习2-在阿里云服务器上部署禅道环境
前言 以前出去面试总会被问到:测试环境怎么搭建?刚工作1-2年不会搭建测试环境还可以原谅自己,工作3-5年后如果还是对测试环境搭建一无所知,面试官会一脸的鄙视. 本篇以最简单的禅道环境搭建为例,学习下 ...
- 阿里云Linux CentOS 7 Docker部署使用gogs搭建自己的git服务器
一.前言 Git是目前优秀和流行的源代码管理工具.而GitHub是一个面向开源及私有软件项目的托管云平台,但开源免费,私有收费.而公司出于商业化等目的需要搭建自己的源代码托管服务器.通过网上了解Gog ...
- 阿里云服务器上搭建seafile专业版
因为官方一键安装教程在阿里云服务器上无法安装,由于水平有限,无法解决,所以选择手动安装 参考资料: 1,.腾讯云搭建seafile服务器 2.How to Install Seafile with N ...
- 阿里云服务器上安装mysql的心路历程(博友们进来看看哦)
在阿里云花了100买了一台云服务器,配置如下: CPU: 1核 内存: 512MB 数据盘: 0G 带宽: 1Mbps 阿里云服务器安装mysql搞得我想吐血,搞了一个多星期,现在才搞好,而且,还有许 ...
- 在阿里云服务器上安装完成并启动Tomcat后,通过http不能访问--解决办法
在阿里云服务器上安装完成并启动Tomcat后,通过http不能访问的原因是阿里云平台为了安全设置了安全组策略,必须我们授权的端口,其他计算机才能通过http访问 解决办法:(这里以阿里轻量应用服务器为 ...
随机推荐
- Web API中的返回值类型
WebApi中的返回值类型大致可分为四种: Void/ IHttpActionResult/ HttpResponseMessage /自定义类型 一.Void void申明方法没有返回值,执行成功后 ...
- WebStorm记录(3)
连通接口 接口 我自己理解前后端传输数据都是通过ajax方式 一般使用get和post两种方式传输数据 GET 接口 接口描述 获取登录验证码图片及密钥 HTTP方法 POST URL /captch ...
- SecureCRT通过拷贝配置文件登陆
不知道是不是SecureCRT有问题,有时候会出现配置丢失的情况,而自己又找不到密码了,于是从同事拷贝配置文件,发现可以成功复制服务器登陆信息 1.option -> global option ...
- 在py文件中设置文件头
在写python文件的时候有时需要记录作者.创建时间等时间,因此可以给python文件设置文件头,这里以PyCharm为例介绍设置步骤: 1. 打开PyCharm,依次点击Setting-----Ed ...
- 函数的作用域、global与nonlocal
global 表示不再使用局部局部作用域中的内容,而是改用全局作用域中的变量 a = 100 def func(): global a # 表示不再局部创建这个变量,而是直接使用这个全局的a a = ...
- Django眼中的MVC
(转载)http://www.cnblogs.com/michaely/p/3340087.html MVC是众所周知的模式,即:将应用程序分解成三个组成部分:model(模型),view(视图),和 ...
- Devexpress GridControl切换数据源
gridControl1.DataSource = dt1; (gridControl1.DefaultView as GridView).Columns.Clear();//切换前需要先把列清空了. ...
- Jenkins和pipeline
Jenkins https://jenkins.io/index.html The leading open source automation server, Jenkins provides hu ...
- [译]使用mediatR的notification来扩展的的应用
原文 你不希望在controller里面出现任何领域知识 开发者经常有这样的疑问"这个代码应该放在哪呢?"应该使用仓储还是query类?.... 怎么去实现职责分离和单一职责呢? ...
- tensorflow的特征工程函数
1. # creates a real valued column for dense numeric data tf.contrib.layers.real_valued_column( co ...