研究 Redmine 的緣起
Redmine 是在工作時接觸到的專案管理工具,某天想把這個工具導入其他經營團隊才發現 Redmine 原來是開源的服務,網路上也有蠻多人提供伺服器架設給人使用但都只有約三十天免費的方式,而剛好手上有些雲端點數就想動手來架設,過程中遇到的一些 bug 是散落在不同討論區的,想說整理起來分享給大家,也為自己留下個紀錄,以下閱讀約十分鐘,實作不含安裝軟體約二十分鐘完成。
安裝項目
- Redmine 平台
- MySQL + phpMyAdmin
容易遇到問題
- 平台發信
- 資料保存及中文字儲存
介紹 Redmine
今天要架設的平台是 Redmine,雖然介面看起來稍稍老舊但別小看它,功能異常齊全(權限管理、自訂標籤、議題指派及監看、議題相關程式碼追蹤、markdown語法筆記),這裡不提深入 Redmine 功能,只是想跟你說,「不容易安裝」這個的缺點將在這篇文章後再也不存在。
今天要使用的工具是 Docker,Docker是Google的一個業餘開源專案,使用的原因主要是 輕量、更易於擴充及分享的特性而選用,此文章將注重使用 docker 建立 redmine 服務、mysql 及 phpMyAdmin 三個服務的流程,而實際作法將會以 docker-compose 設定來串接,至於 docker 相較於虛擬機的細節差異如 redmine功能 一樣不在此文章太多提及。
實作建立 Redmine
安裝 Docker 及 Docker-compose
安裝連結:https://docs.docker.com/compose/install/
安裝後開啟 終端機,打上以下指令確認都能取到版本,確認安裝成功
撰寫 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 是否已經啟動
開啟瀏覽器輸入 http://127.0.0.1,如果沒看到畫面,可能是平台還在初始化資料,大概是等一分鐘就完成了。
備註:如果啟動後一段時間還看不到畫面的可以使用指令查看服務狀況
docker logs redmine
查看啟動後的狀況,理論上有下方訊息應該就是成功連線到資料庫了,如果有自行修改資料庫帳密的,可以注意一下有沒有同步把 redmine 應該連線的帳密做更新。
登入 Redmine 平台
設定 Redmine 中文介面
Administration => Setting => Display
將預設語言及之後登入的會員轉成所需的語言
設定 Redmine 寄信的項目及主要的服務網址
中文字儲存及寄信測試:網站管理 => 用戶清單=> 建立新用戶
1. 建立一個包含中文字訊息的新用戶內容
2. 勾選「寄送帳戶資訊電子郵件給用戶」
收信成功(可以檢查一下是否被丟到垃圾信件中)
備註:如果無法成功收信,可以檢查是否信箱帳密輸入錯誤,如果是的化可以修改設定檔並重啟服務在試試寄一次信。
docker-compose restart
注意:因未目前是在本機測試環境,如果此信件寄給其他電腦用戶將無法看到你的 redmine 平台網頁,需要把平台架設在雲端公開的網路上,或者自家的網路需要有公開靜態 ip 連接到本機上才可以開放給所有人使用。
關閉 Redmine 服務
docker-compose stop
結論
其實有了 docker 後許多服務的設定將可以蠻容易得分享出來,而且可以很有彈性的新增服務,例如範例中的 phpMyAdmin 就是自行添加的,而且還可以設定變數讓 docker-compose.yml 就可直接設定服務信箱,讓原本需要進入個別容器自行調整寄信的檔案,一切都變得非常直接,但雖然操作容易,但以上實作過程其實也碰了不少壁呢,會把一些項目在之後補在下方的筆記區有興趣可以再閱讀。
學習筆記區
如果喜歡我這篇文,可以幫我拍手 1-10 下
如果覺得這文章對你有幫助,可以幫我拍手 10–30 下
如果覺得想看到更多關於學習筆記的文章,可以幫我拍手 30–50 下
讓我知道也記得 Follow我 陳建宇
更歡迎你在下方留言,我很樂意與你討論聊天或回答問題!