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'