What is Redmine?
Redmine is a flexible project management web application. Written using the Ruby on Rails framework, it is cross-platform and cross-database.
官方最简启动方式:
$ curl -sSL https://raw.githubusercontent.com/bitnami/bitnami-docker-redmine/master/docker-compose.yml > docker-compose.yml $ docker-compose up -d
查看官方docker-compose内容
➜ yatho_redmine cat docker-compose.yml
version: \'2\'
services:
mariadb:
image: \'bitnami/mariadb:latest\'
environment:
- ALLOW_EMPTY_PASSWORD=yes
volumes:
- \'mariadb_data:/bitnami\'
redmine:
image: \'bitnami/redmine:latest\'
labels:
kompose.service.type: nodeport
ports:
- \'80:3000\'
volumes:
- \'redmine_data:/bitnami\'
depends_on:
- mariadb
volumes:
mariadb_data:
driver: local
redmine_data:
driver: local
搭建自己的服务器:
环境释放
Ubuntu服务器:Docker版本
➜ redmine docker version Client: Version: 17.05.0-ce API version: 1.29 Go version: go1.7.5 Git commit: 89658be Built: Thu May 4 22:10:54 2017 OS/Arch: linux/amd64 Server: Version: 17.05.0-ce API version: 1.29 (minimum version 1.12) Go version: go1.7.5 Git commit: 89658be Built: Thu May 4 22:10:54 2017 OS/Arch: linux/amd64 Experimental: false
下载镜像
安装redmine需要redmine和MySQL的镜像,直接下载官方最新版本(可以按照公司需要下载制定的版本)
docker pull mysql docker pull redmine
下载后查看镜像
docker images
docker启动mysql
docker run -d -p 3306:3306 --name server-mysql -e MYSQL_ROOT_PASSWORD="pass" -e MYSQL_DATABASE=redmine mysql:latest
这里为物理机和虚拟机的3306端口做了端口映射,以让外部用户可以通过3306端口访问mysql实例
docker启动redmine
docker run -d -p 8080:3000 --name=server-redmine -e MYSQL_ROOT_PASSWORD="pass" --link server-mysql:mysql redmine:latest
这里为物理机和虚拟机的8080与3000端口做了端口映射,使用外部用户可以通过8080端口访问redmine.
检查启动
打开浏览器访问物理机的8080端口就可以打开redmine的页面了
使用数据卷共享数据
在redmine的使用过程中,通常会有用户上传文件,这些文件存放在/usr/src/redmine/files路径下,使用docker安装后,这些文件便在容器内部,如果日常需要备份等维护工作,能在物理机上进行操作是比较方便的。因此借助docker的数据卷功能以实现这种需求。
docker run -d -p 8080:3000 --name=server-redmine -e MYSQL_ROOT_PASSWORD="pass" --link server-mysql:mysql -v /redmine-dir:/usr/src/redmine/files redmine:latest
同样的mysql的数据存储目录也可以和物理机共享
docker run -d -p 3306:3306 --name server-mysql -v /mysql-dir:/var/lib/mysql -e MYSQL_ROOT_PASSWORD="pass" -e MYSQL_DATABASE=redmine mysql:latest
数据库备份
数据库备份的一种方法是dump成sql文件,见下面的命令。
docker exec server-mysql sh -c \'exec mysqldump --databases redmine -uroot -p"$MYSQL_ROOT_PASSWORD"\' > /your/host/path/bak.sql
如果想将虚拟机的文件复制出来,可以用:
docker cp server-mysql:/var/lib/mysql/redmine ./
docker-compose
为方便维护,改装成docker-compose
version: \'1\'
server-redmine:
image: redmine:latest
links:
- server-mysql:server-mysql
ports:
- \'8087:3000\'
environment:
- MYSQL_ROOT_PASSWORD=pass
volumes:
- \'/root/docker/redmine/redmine_dir:/usr/src/redmine/files\'
server-mysql:
image: mysql:latest
environment:
- MYSQL_ROOT_PASSWORD=pass
volumes:
- \'/root/docker/redmine/mysql__dir:/var/lib/mysql\'