基于ROR开发的项目管理软件Redmine,与功能类似的Trac/Mantis相比也有自己的独特特性,以及和其他版本管理工具以及LDAP等的请打集成功能,是一款深受大家喜爱的开源项目管理软件。Bitnami提供了一键安装包以及镜像,非常方便。本文将使用镜像安装的方式,使用Easypack项目中自定义简化了的alpine版redmine镜像以及最新的MySQL8.0版本的镜像,同时提供docker-compose的方式直接使用Redmine.

事前准备

所需镜像

基于镜像方式的Redmine,我们需要redmine的镜像和MySQL的镜像,当然除了MySQL之外,PostgreSQL 等也完全没有问题。

项目 版本 获取方式
redmine镜像 3.3 docker pull liumiaocn/redmine
mysql镜像 8.0 docker pull liumiaocn/mysql

关于MySQL的简单使用可以参看下面这篇文章以便迅速入门

项目 http://blog.csdn.net/liumiaocn/article/details/56485588

取得MySQL镜像

[root@liumiaocn ~]# docker pull liumiaocn/mysql
Using default tag: latest
Trying to pull repository docker.io/liumiaocn/mysql ...
latest: Pulling from docker.io/liumiaocn/mysqlDigest: sha256:bbf6ece5678975f1558123d32f0122da300dc1729007ff3a576a0eafe89aa4cf
Status: Image is up to date for docker.io/liumiaocn/mysql:latest
[root@liumiaocn ~]#

取得Redmine镜像

[root@liumiaocn ~]# docker pull liumiaocn/redmine
Using default tag: latest
Trying to pull repository docker.io/liumiaocn/redmine ...
latest: Pulling from docker.io/liumiaocn/redmine0a8490d0dfd3: Already exists
7a621d30439b: Pull complete
caa9dcd302d7: Pull complete
4f84a7468e35: Pull complete
31c3539d7d18: Pull complete
Digest: sha256:f8bfc6c5bea230d62f8fe059bd4907c89ef1b2351f52ea7ad9dcb0eccf14f4a0
Status: Downloaded newer image for docker.io/liumiaocn/redmine:latest
[root@liumiaocn ~]#

普通方式

使用普通方式使用redmine, 一般事前现行启动mysql容器,然后再启动redmine的时候通过link参数指定所启动的mysql容器即可。

项目 启动命令
启动mysql容器 docker run -d –name mysql -e MYSQL_ROOT_PASSWORD=secret -e MYSQL_DATABASE=redmine liumiaocn/mysql
启动redmine容器 docker run -p 3000:3000 -d –name redmine –link mysql:mysql liumiaocn/redmine
启动redmine容器(proxy) docker run -e http_proxy=httpproxy−ehttpsproxy={http_proxy} -e https_proxy={https_proxy} -p 3000:3000 -d –name redmine –link mysql:mysql liumiaocn/redmine

注意事项:由于Redmine是基于ROR的软件,所以有大量的版本的更新连接操作时很难避免的要连接网络,如果在企业的内网之内的话,proxy可能会挡住redmine的更新。所以使用-e将相关的环境变量传入即可,当然所传入的环境变量在本机或者至少在当前终端需要有设定才可。

启动mysql容器

[root@liumiaocn ~]# docker run -d --name mysql -e MYSQL_ROOT_PASSWORD=secret -e MYSQL_DATABASE=redmine liumiaocn/mysql
895ab55ca55ebb102bace76ed95b075476bb8c85579dc4436c76d0df2c03d86b
[root@liumiaocn ~]#

启动redmine容器

[root@liumiaocn ~]# docker run -p 3000:3000 -d --name redmine --link mysql:mysql liumiaocn/redmine
61d6ebd632ea6332e5f2a1daa0affb06e20607af514b3346d6aa9dcc0007223f
[root@liumiaocn ~]#

>注意事项:由于更新和初期化数据库等操作需要一定时间,请耐心等待一段时间,所谓的一段时间的长短根网络速度有很大关系,可以通过docker logs redmine来确认具体进度,出现了“INFO WEBrick::HTTPServer#start: pid=1 port=3000”的log信息就表明redmine已经就绪了。

确认redmine

关于redmine的简单使用的介绍,可以参看如下文章

文章 链接
Ticket管理工具:Redmine http://blog.csdn.net/liumiaocn/article/details/52107410
Bitnami Redmine安装配置指南 http://blog.csdn.net/liumiaocn/article/details/53523604

docker-compose方式

多个镜像的单机编排,自然少不了docker-compose显示身手,所以也可以直接使用docker-compose方式,在Easypack对redmine的使用也提供了docker-compose方式。

proxy情况下的yml文件

[root@liumiaocn ~]# cat docker-compose.yml
version: '2'services:redmine:image: liumiaocn/redmineports:- 3000:3000environment:http_proxy: ${http_proxy}https_proxy: ${https_proxy}REDMINE_DB_MYSQL: redmineREDMINE_DB_PASSWORD: secretdepends_on:- redminedbrestart: neverredminedb:image: liumiaocn/mysqlenvironment:MYSQL_ROOT_PASSWORD: secretMYSQL_DATABASE: redminerestart: never
[root@liumiaocn ~]#

直接连接网络,不经过代理的情况可以直接删除http_proxy和https_proxy两行设定即可。

启动

使用docker-compose方式启动只需要一条命令即可,当然前提是docker-compose已经安装完毕,在docker-compose还没有跟docker合体之前,目前需要分别安装,可以参看如下文章进行安装:

文章 链接
docker-compose的安装和设定 http://blog.csdn.net/liumiaocn/article/details/52148274

启动log如下:

[root@liumiaocn ~]# docker-compose up
Creating network "root_default" with the default driver
Pulling redminedb (liumiaocn/mysql:latest)...
Trying to pull repository docker.io/liumiaocn/mysql ...
latest: Pulling from docker.io/liumiaocn/mysql
5040bd298390: Already exists
d380e9ce206d: Pull complete
d2cdbfa8c9e8: Pull complete
3f3b43330ab6: Pull complete
63a2c442cd4c: Pull complete
755b18be0122: Pull complete
d5138eacfabf: Pull complete
e37972099ff1: Pull complete
9f125c251d92: Pull complete
73f300a76ee1: Pull complete
ad6380b5f40b: Pull complete
Digest: sha256:bbf6ece5678975f1558123d32f0122da300dc1729007ff3a576a0eafe89aa4cf
Status: Downloaded newer image for docker.io/liumiaocn/mysql:latest
Pulling redmine (liumiaocn/redmine:latest)...
Trying to pull repository docker.io/liumiaocn/redmine ...
latest: Pulling from docker.io/liumiaocn/redmine
0a8490d0dfd3: Pull complete
7a621d30439b: Pull complete
caa9dcd302d7: Pull complete
4f84a7468e35: Pull complete
31c3539d7d18: Pull complete
Digest: sha256:f8bfc6c5bea230d62f8fe059bd4907c89ef1b2351f52ea7ad9dcb0eccf14f4a0
Status: Downloaded newer image for docker.io/liumiaocn/redmine:latest
Creating root_redminedb_1
Creating root_redmine_1
Attaching to root_redminedb_1, root_redmine_1
redminedb_1  | Initializing database
......
redmine_1    | [2017-02-22 21:46:02] INFO  ruby 2.3.3 (2016-11-21) [x86_64-linux-musl]
redmine_1    | [2017-02-22 21:46:02] INFO  WEBrick::HTTPServer#start: pid=1 port=3000

确认redmine

备份还原

为了进行备份和迁移,建议挂出来的数据卷和数据等定期进行备份,以防数据丢失。Redmine需要备份的数据主要如下所示:

项番 用途 详细目录
No.1 数据库 以Mysql为例,使用mysqldump导出数据即可。具体可以参看:http://blog.csdn.net/liumiaocn/article/details/56485588
No.2 附件等信息 各种版本的redmine可能略有不同,大多是相对路径htdocs\files下的所有文件需要备份
No.3 设定文件 根据具体情况,比如如下的设定文件是否需要备份请自行确认:htdocs\config\database.yml 或者 htdocs\config\configuration.yml

迁移则非常简单,数据导入,文件覆盖即可。

总结

Atlassian的Jira非常强大,可是属于收费软件。redmine是开源的项目管理利器,作为开源解决方案之一,结合redmine和其他的一些工具也能实现绝大部分的企业需求,值得深入探讨。

Easypack之Alpine容器系列:Redmine相关推荐

  1. Easypack之Alpine容器系列:Sonarqube

    本文将使用镜像安装的方式,使用Easypack项目中自定义简化了的alpine版Sonarqube镜像以及官方的MySQL5.7.18版本的镜像,同时提供docker-compose的方式直接使用So ...

  2. [Spring 深度解析]第6章 Spring的IoC容器系列

    6. Spring的IoC容器系列 ​ IoC容器为开发者管理对象之间的依赖关系提供了很多便利和基础服务.有许多IoC容器供开发者选择,SpringFramework的IoC核心就是其中一个,它是开源 ...

  3. Spring 的IOC容器系列的设计与实现:BeanFactory 和 ApplicationContext

    在Spring IOC容器的设计中,我们可以看到两个主要的容器系列,一个是实现BeanFactory接口的简单容器系列,这系列容器只实现了容器的最基本的功能,另一个是ApplicationContex ...

  4. 哈希存储 java_Java容器系列之HashMap的存储

    Java容器系列之HashMap 概要 本文将结合Java源码总结HashMap的存储结构及其扩容策略,并根据这些特点给出使用HashMap的最佳实践. 本文不再介绍HashMap的基本使用,有需要的 ...

  5. 【Spring】IoC容器系列的设计与实现:BeanFactory和ApplicationContext

    在Spring IoC容器的设计中,我们可以看到两个主要的容器系列,一个是实现BeanFactory接口的简单容器系列,这系列容器只实现了容器的最基本功能,另一个是ApplicationContext ...

  6. .Net Core 微服务容器系列基础目录篇

    1.开场白 HI,各位老铁,大家端午好,之前写了些关于.net core商城系列的文章,有点乱,今天心血来潮想着整理一下(今天只是先把目录列出来,后面的每篇文章这两天会进行重新修改的,目前先将就看下) ...

  7. Easypack: JEECG的容器化编译环境快速构建

    这篇文章整理一下使用镜像方式进行JEECG编译环境的标准化,并将标准化的编译镜像和脚本放到了easypack上. JEECG介绍 详细的介绍可以参看如下链接: http://www.jeecg.com ...

  8. Java集合容器系列04-HashMap

    2019独角兽企业重金招聘Python工程师标准>>> 一.HashMap介绍     HashMap是基于哈希表实现的Map容器,存储的元素是键值对映射.继承自AbstractMa ...

  9. Docker容器系列教程(三):jenkins环境搭建与插件安装

    回顾:上一文对Docker常用的命令以罗列的方式做了一个详尽的介绍.本文将使用这些命令搭建一个jenkins持续集环境,解决jenkins不能联网的问题来安装各种常用插件. Jenkins 简述 Je ...

最新文章

  1. ansible高级应用示例
  2. Ubuntu20.04 安装VMware Tools
  3. roboware studio_关于安装Roboware的教程
  4. 关于MFC共享DLL的模块状态切换 .
  5. css transition animation
  6. oracle数据本机自动备份
  7. 无数种求逆元的方法总结
  8. Image Warp插件实现图片点击扩大渐隐效果
  9. 【git系列】简单入门git命令一
  10. 神经网络入门之DNN(一)
  11. 手部精细动作有哪些_3-6岁手部精细动作训练游戏!促进孩子大脑发育
  12. MAC编译:fatal error: ‘endian.h‘ file not found
  13. 保存Google、Bing翻译的语音
  14. OSChina 周六乱弹 ——程序员想让对象一辈子跟你的秘籍
  15. linux 登陆sybase_远程连接sybase 数据库 步骤
  16. 对中文GB2312编码和解码
  17. 短视频创业,如何在技术上节省100万启动资金?
  18. Protel99SE添加泪滴焊盘
  19. 【Autosar Can网络远程唤醒】
  20. 360n4手机可以装linux,360手机N4 root教程_360手机N4获取root权限的方法

热门文章

  1. 微信浏览器页面样式不生效
  2. 5G+急诊救治 - 5G救护车远程会诊智慧医疗解决方案
  3. Hbuildx创建vue3项目
  4. 银行普惠金融可持续发展能力建设——风控科技应用
  5. 不要妄图一夜实现「智能」,这里有AI工业落地几乎必遇的「深坑」
  6. Re-ID:AlignedReID: Surpassing Human-Level Performance in Person Re-Identification 论文解析
  7. scrapy爬取博客文章
  8. Bert超长文本分类、文本摘要
  9. Android动画特效之Animator属性动画实现
  10. macos双系统 wintogo_Mac双系统新玩法,可随身携带的Windows系统