半小時以 Docker 建立 Redmine 平台

Nick
7 min readFeb 9, 2019

--

研究 Redmine 的緣起

Redmine 是在工作時接觸到的專案管理工具,某天想把這個工具導入其他經營團隊才發現 Redmine 原來是開源的服務,網路上也有蠻多人提供伺服器架設給人使用但都只有約三十天免費的方式,而剛好手上有些雲端點數就想動手來架設,過程中遇到的一些 bug 是散落在不同討論區的,想說整理起來分享給大家,也為自己留下個紀錄,以下閱讀約十分鐘,實作不含安裝軟體約二十分鐘完成。

安裝項目

  • Redmine 平台
  • MySQL + phpMyAdmin

容易遇到問題

  • 平台發信
  • 資料保存及中文字儲存

介紹 Redmine

優缺點比較圖來自 網路部落格,今天要來去除掉這裡提到的缺點 ~~

今天要架設的平台是 Redmine,雖然介面看起來稍稍老舊但別小看它,功能異常齊全(權限管理、自訂標籤、議題指派及監看、議題相關程式碼追蹤、markdown語法筆記),這裡不提深入 Redmine 功能,只是想跟你說,「不容易安裝」這個的缺點將在這篇文章後再也不存在。

「docker compose」的圖片搜尋結果
docker-compose 之於 docker 的關係

今天要使用的工具是 Docker,Docker是Google的一個業餘開源專案,使用的原因主要是 輕量、更易於擴充及分享的特性而選用,此文章將注重使用 docker 建立 redmine 服務、mysql 及 phpMyAdmin 三個服務的流程,而實際作法將會以 docker-compose 設定來串接,至於 docker 相較於虛擬機的細節差異如 redmine功能 一樣不在此文章太多提及。

實作建立 Redmine

安裝 Docker 及 Docker-compose

安裝連結:https://docs.docker.com/compose/install/

安裝後開啟 終端機,打上以下指令確認都能取到版本,確認安裝成功

docker -v 指令有輸出結果代表安裝成功
docker-compose -v 指令有輸出結果代表安裝成功

撰寫 docker-compose.yml

開啟編輯器,將以下設定檔貼上並儲存名為 docker-compose.yml
這裡選用 bitnami 提供的 redmine image

設定 docker-compose 內容

目前預設的服務帳密

  • MySQL:
    root帳密: root | password
  • phpMyAdmin:
    設定 MySQL 連線帳密及網路
    設定對外的 port 為 8080
  • redmine
    設定 MySQL 連線帳密及網路
    設定平台管理員帳密:admin | password
    設定對外的 port 為 80

尚須設定的資料:平台寄信信箱

此部分預設使用 Gmail 的信箱寄信,你可以直接使用你的 gmail 信箱或申請一個新的 Gmail 信箱,只需要注意如有使用到已有二階段認證(例如手機二次確認登入)的信箱,請申請一個應用程式密碼替代為密碼登入,不然可能沒辦法授權給平台使用寄信。

填入在以上最後兩行,注意信箱及密碼需與冒號空一個半形空格!!!!

建立 Redmine 平台

開啟終端機,切換到與設定檔( docker-compose.yml )同個目錄下
然後執行

docker-compsoe up -d

up 代表啟動
-d 代表在背景執行

執行成功後會看到個別的服務指定 done 表示有啟動成功,

有成功啟動服務的畫面,但不代表已經各個服務間有完全串連成功哦 ~~

確認 Redmine 服務串連建立成功

開啟瀏覽器輸入 http://127.0.0.1:8080 觀看 phpMyAdmin 是否已經啟動

可以使用設定檔中設定的資料庫密碼進行登入,預設為 root | password 或 admin | admin_password
串連成功會看到自訂名稱的 my_redmine 這個資料庫,代表 redmine 平台有成功串連

開啟瀏覽器輸入 http://127.0.0.1,如果沒看到畫面,可能是平台還在初始化資料,大概是等一分鐘就完成了。

看到平台畫面就代表啟動成功囉

備註:如果啟動後一段時間還看不到畫面的可以使用指令查看服務狀況

docker logs redmine

查看啟動後的狀況,理論上有下方訊息應該就是成功連線到資料庫了,如果有自行修改資料庫帳密的,可以注意一下有沒有同步把 redmine 應該連線的帳密做更新。

成功連線的 logs

登入 Redmine 平台

平台預設帳密為 admin | password

設定 Redmine 中文介面

Administration => Setting => Display
將預設語言及之後登入的會員轉成所需的語言

進入設定頁後,預設語言( Default language )設定維繁體中文

設定 Redmine 寄信的項目及主要的服務網址

中文字儲存及寄信測試:網站管理 => 用戶清單=> 建立新用戶
1. 建立一個包含中文字訊息的新用戶內容
2. 勾選「寄送帳戶資訊電子郵件給用戶」

記得打勾 寄送帳戶資訊給用戶

收信成功(可以檢查一下是否被丟到垃圾信件中)

收到建立用戶的帳密資訊

備註:如果無法成功收信,可以檢查是否信箱帳密輸入錯誤,如果是的化可以修改設定檔並重啟服務在試試寄一次信。

docker-compose restart

注意:因未目前是在本機測試環境,如果此信件寄給其他電腦用戶將無法看到你的 redmine 平台網頁,需要把平台架設在雲端公開的網路上,或者自家的網路需要有公開靜態 ip 連接到本機上才可以開放給所有人使用。

關閉 Redmine 服務

docker-compose stop

結論

其實有了 docker 後許多服務的設定將可以蠻容易得分享出來,而且可以很有彈性的新增服務,例如範例中的 phpMyAdmin 就是自行添加的,而且還可以設定變數讓 docker-compose.yml 就可直接設定服務信箱,讓原本需要進入個別容器自行調整寄信的檔案,一切都變得非常直接,但雖然操作容易,但以上實作過程其實也碰了不少壁呢,會把一些項目在之後補在下方的筆記區有興趣可以再閱讀。

學習筆記區

如果喜歡我這篇文,可以幫我拍手 1-10 下
如果覺得這文章對你有幫助,可以幫我拍手 10–30
如果覺得想看到更多關於學習筆記的文章,可以幫我拍手 30–50
讓我知道
也記得 Follow我 陳建宇
更歡迎你在下方留言,我很樂意與你討論聊天或回答問題!

--

--

Nick
Nick

Written by Nick

嗨 我是 Nick,目前在 ShopBack 擔任軟體工程師,喜歡用科技解決問題,偶爾會整理一些工作上的發現分享在這,歡迎大家追蹤及交流

Responses (2)