使用docker搭建公司redmine伺服器

YatHo發表於2017-11-20

 

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'

  

相關文章