codecamp

Docker 搭建redmine

Redmine是一个开源的项目管理系统,它有如下优势让我选择它作为我的项目管理工具。

1.支持多项目管理

2.灵活的角色管理

3.灵活的issue/bug跟踪管理

4.支持甘特图和日历

5.支持新闻、文档和文件管理,邮件通知等功能

6.每个项目有自己的wiki和论坛,这一点非常棒

7.与SCM系统集成,支持SVN, CVS, Git, Mercurial, Bazaar and Darcs等源代码管理工具,这一点同样非常棒

有了Redmine,让项目经理不用愁管理项目了。

同样,看看官方是否出docker镜像或者其他人作好镜像了,我直接用就好了。

 $ docker search redmine  
  NAME                             DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED  
  sameersbn/redmine                                                                72                   [OK]  

这与在docker hub上搜索是一样的,虽然没有官方的镜像,那我们就选择星星数量多的镜像,sameersbn/redmine就成了我的选择。

用fig直接快速安装,在自己的docker目录下新建redmine目录,在里面执行:

~/docker/redmine$ wget https://raw.githubusercontent.com/sameersbn/docker-redmine/master/fig.yml  

下载的fig.yml内容如下:

  postgresql:  
    image: sameersbn/postgresql:9.1-1  
    environment:  
      - DB_USER=redmine  
      - DB_PASS=phatiphohsukeuwo  
      - DB_NAME=redmine_production  
  redmine:  
    image: sameersbn/redmine:2.6.1  
    links:  
      - postgresql:postgresql  
    environment:  
      - DB_USER=redmine  
      - DB_PASS=phatiphohsukeuwo  
      - DB_NAME=redmine_production  
    ports:  
      - "10080:80"  

直接快速启动就可以了。

~/docker/redmine$ fig up -d  

  $ docker ps  
  CONTAINER ID        IMAGE                           COMMAND                CREATED             STATUS              PORTS                            NAMES  
  5d5d5a983298        sameersbn/redmine:2.6.1         "/app/init app:start   51 minutes ago      Up 51 minutes       443/tcp, 0.0.0.0:10080->80/tcp   redmine_redmine_1           
  c78a212c1503        sameersbn/postgresql:9.1-1      "/start"               About an hour ago   Up About an hour    5432/tcp                         redmine_postgresql_1     

浏览器中输入http://localhost:10080,

管理员帐号是admin,密码admin。

愉快玩耍吧!

参考:

https://registry.hub.docker.com/u/sameersbn/redmine/

Docker 搭建wordpress
Docker 解决Cannot connect to the Docker daemon.
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }