Easypack之Alpine容器系列:Redmine
基于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相关推荐
- Easypack之Alpine容器系列:Sonarqube
本文将使用镜像安装的方式,使用Easypack项目中自定义简化了的alpine版Sonarqube镜像以及官方的MySQL5.7.18版本的镜像,同时提供docker-compose的方式直接使用So ...
- [Spring 深度解析]第6章 Spring的IoC容器系列
6. Spring的IoC容器系列 IoC容器为开发者管理对象之间的依赖关系提供了很多便利和基础服务.有许多IoC容器供开发者选择,SpringFramework的IoC核心就是其中一个,它是开源 ...
- Spring 的IOC容器系列的设计与实现:BeanFactory 和 ApplicationContext
在Spring IOC容器的设计中,我们可以看到两个主要的容器系列,一个是实现BeanFactory接口的简单容器系列,这系列容器只实现了容器的最基本的功能,另一个是ApplicationContex ...
- 哈希存储 java_Java容器系列之HashMap的存储
Java容器系列之HashMap 概要 本文将结合Java源码总结HashMap的存储结构及其扩容策略,并根据这些特点给出使用HashMap的最佳实践. 本文不再介绍HashMap的基本使用,有需要的 ...
- 【Spring】IoC容器系列的设计与实现:BeanFactory和ApplicationContext
在Spring IoC容器的设计中,我们可以看到两个主要的容器系列,一个是实现BeanFactory接口的简单容器系列,这系列容器只实现了容器的最基本功能,另一个是ApplicationContext ...
- .Net Core 微服务容器系列基础目录篇
1.开场白 HI,各位老铁,大家端午好,之前写了些关于.net core商城系列的文章,有点乱,今天心血来潮想着整理一下(今天只是先把目录列出来,后面的每篇文章这两天会进行重新修改的,目前先将就看下) ...
- Easypack: JEECG的容器化编译环境快速构建
这篇文章整理一下使用镜像方式进行JEECG编译环境的标准化,并将标准化的编译镜像和脚本放到了easypack上. JEECG介绍 详细的介绍可以参看如下链接: http://www.jeecg.com ...
- Java集合容器系列04-HashMap
2019独角兽企业重金招聘Python工程师标准>>> 一.HashMap介绍 HashMap是基于哈希表实现的Map容器,存储的元素是键值对映射.继承自AbstractMa ...
- Docker容器系列教程(三):jenkins环境搭建与插件安装
回顾:上一文对Docker常用的命令以罗列的方式做了一个详尽的介绍.本文将使用这些命令搭建一个jenkins持续集环境,解决jenkins不能联网的问题来安装各种常用插件. Jenkins 简述 Je ...
最新文章
- ansible高级应用示例
- Ubuntu20.04 安装VMware Tools
- roboware studio_关于安装Roboware的教程
- 关于MFC共享DLL的模块状态切换 .
- css transition animation
- oracle数据本机自动备份
- 无数种求逆元的方法总结
- Image Warp插件实现图片点击扩大渐隐效果
- 【git系列】简单入门git命令一
- 神经网络入门之DNN(一)
- 手部精细动作有哪些_3-6岁手部精细动作训练游戏!促进孩子大脑发育
- MAC编译:fatal error: ‘endian.h‘ file not found
- 保存Google、Bing翻译的语音
- OSChina 周六乱弹 ——程序员想让对象一辈子跟你的秘籍
- linux 登陆sybase_远程连接sybase 数据库 步骤
- 对中文GB2312编码和解码
- 短视频创业,如何在技术上节省100万启动资金?
- Protel99SE添加泪滴焊盘
- 【Autosar Can网络远程唤醒】
- 360n4手机可以装linux,360手机N4 root教程_360手机N4获取root权限的方法
热门文章
- 微信浏览器页面样式不生效
- 5G+急诊救治 - 5G救护车远程会诊智慧医疗解决方案
- Hbuildx创建vue3项目
- 银行普惠金融可持续发展能力建设——风控科技应用
- 不要妄图一夜实现「智能」,这里有AI工业落地几乎必遇的「深坑」
- Re-ID:AlignedReID: Surpassing Human-Level Performance in Person Re-Identification 论文解析
- scrapy爬取博客文章
- Bert超长文本分类、文本摘要
- Android动画特效之Animator属性动画实现
- macos双系统 wintogo_Mac双系统新玩法,可随身携带的Windows系统