1. 程式人生 > >Docker環境下Redmine的部署指南!

Docker環境下Redmine的部署指南!

# 1、 docker下拉取並啟動mysql映象
    docker run -d -p 3306:3306 --name some-mysql -e MYSQL_ROOT_PASSWORD="secret" -e MYSQL_DATABASE=redmine mysql:5.7


# 2、 Docker下修改mysql配置(修改utf-8字符集)
參考地址:http://blog.csdn.net/sqandczm/article/details/78152451?locationNum=7&fps=1


進入容器後輸入:


    mysql -u root -p
    
    SHOW VARIABLES LIKE 'character_set_%';//檢視資料庫字符集
    
    SHOW VARIABLES LIKE 'collation_%';
    
    SET NAMES 'utf8';


最後修改etc/mysql/mysql.conf.d/mysql.cnf配置檔案內容如下所示:


~~~bash
# Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved.  
#  
# This program is free software; you can redistribute it and/or modify  
# it under the terms of the GNU General Public License as published by  
# the Free Software Foundation; version 2 of the License.  
#  
# This program is distributed in the hope that it will be useful,  
# but WITHOUT ANY WARRANTY; without even the implied warranty of  
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
# GNU General Public License for more details.  
#  
# You should have received a copy of the GNU General Public License  
# along with this program; if not, write to the Free Software  
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA  
  
  
#  
# The MySQL  Server configuration file.  
#  
# For explanations see  
# http://dev.mysql.com/doc/mysql/en/server-system-variables.html  
  
  
[mysql]  
default-character-set = utf8  
  
  
[mysql_safe]  
default-character-set = utf8  
  
  
[client]  
default-character-set = utf8  
  
  
[mysqld]  
pid-file      = /var/run/mysqld/mysqld.pid  
socket        = /var/run/mysqld/mysqld.sock  
datadir       = /var/lib/mysql  
#log-error    = /var/log/mysql/error.log  
# By default we only accept connections from localhost  
#bind-address = 127.0.0.1  
# Disabling symbolic-links is recommended to prevent assorted security risks  
symbolic-links=0  
init_connect  = 'SET NAMES utf8'  
character-set-server = utf8  
collation-server = utf8_unicode_ci  
~~~


**注:修改配置檔案後退出並重啟mysql服務(通過docker restart命令);另本步驟為必須,否則redmine將無法正確儲存中文,會報異常無法操作。**


---


# 3、 docker下拉取並啟動redmine映象
    docker run -d -p 8088:3000 --name some-redmine --link some-mysql:mysql redmine:3.4


# 4、 後續訪問
目前為止,開啟瀏覽器訪問物理機的8088埠就可以開啟redmine的頁面了。

管理員帳號是admin,密碼admin。



# 5、 版本庫的配置
在選擇scm為git時,庫路徑中寫入git的路徑即可(**注意:需要包括.git所在的路徑**)
因標準安裝的redmine只能訪問本地git版本庫,不能通過git協議訪問git版本庫,所以我們可以通過git clone --mirror克隆映象到本地的方法來解決。
本例中已將odin專案克隆至/usr/src/redmine/files/odin資料夾中,故而此處的庫路徑填寫成:**/usr/src/redmine/files/odin/.git**


# 6 、 redmine的外掛安裝
通過docker exec -it 進入容器中,進入到plugins目錄下,通過git clone方式來獲取外掛後,通過如下命令完成外掛安裝。


## 6.1 安裝程式碼評審外掛
進入容器目錄:/usr/src/redmine/plugins#下執行:


克隆映象:


    git clone https://github.com/haru/redmine_code_review.git
    
安裝外掛:


    rake redmine:plugins:migrate RAILS_ENV=production


或者:
    
    RAILS_ENV=production bundle exec rake redmine:plugins:migrate
    
    
完成外掛安裝。


## 6.2 程式碼評審配置
選擇專案-->配置-->模組-->勾選程式碼評審即會出現程式碼評審相關選項卡。


## 6.3 解除安裝Redmine外掛
    RAILS_ENV=production bundle exec rake redmine:plugins:migrate NAME=projects_show VERSION=0
    
或者:


    rake redmine:plugins:migrate NAME=redmine_code_review VERSION=0 RAILS_ENV=production
    
* **其中NAME為外掛的名稱。**    


執行上述命令後同時刪除外掛所在的目錄,執行如下命令:


    rm -rf plugins/redmine_code_review
    
    
# 7、 使用docker-compose方式安裝
    docker-compose -f redmine.yml up -d


redmine.yml檔案內容:


~~~bash
version: '3.1'


services:


  redmine:
    image: redmine:3.4
    restart: always
    ports:
      - 8080:3000
    environment:
      REDMINE_DB_MYSQL: db
      REDMINE_DB_PASSWORD: secret
    volumes:
      - /mnt/redmine/log:/usr/src/redmine/log
    depends_on:
      - db
      
  db:
    image: mysql:5.7
    restart: always
    ports:
      - 3306:3306
    environment:
      MYSQL_ROOT_PASSWORD: secret
      MYSQL_DATABASE: redmine
      LANG: C.UTF-8
      MYSQL_CHARSET: utf-8
    command: mysqld --character-set-server=utf8 --collation-server=utf8_unicode_ci      
    volumes:
      - /mnt/redmine/mysql/datadir:/var/lib/mysql
~~~