開始之前
- 可先去docker hub下載redmine、postgres兩個image
- 準備一台可以運行docker的機器,這邊選擇使用AWS的EC2作為主機
撰寫yml檔
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
| version: "3.8" services: postgres: image: postgres:latest container_name: postgres restart: always environment: - POSTGRES_NAME= - POSTGRES_USER= - POSTGRES_PASSWORD= volumes: - ~/redmine/postgres:/var/lib/postgresql/data - ~/redmine/sql:/var/lib/postgresql ports: - "5432:5432"
redmine: image: redmine:latest container_name: redmine restart: always links: - postgres environment: - POSTGRES_PORT=5432 - POSTGRES_NAME= - POSTGRES_USER= - POSTGRES_PASSWORD= - REDMINE_PORT=80 volumes: - ~/redmine/redmine/files:/usr/src/redmine/files - ~/redmine/redmine/log:/usr/src/redmine/log - ~/redmine/redmine/plugins:/usr/src/redmine/plugins - ~/redmine/redmine/themes:/usr/src/redmine/public/themes depends_on: - postgres ports: - "80:3000"
|
開始建置
- 首先請先ssh到你的EC2主機上,並確保docker以及docker-compose已被安裝。
- 接著將yml檔命名成docker-compose.yml並移至你想要的資料夾內
1 2
| scp 要上傳的本機檔案位置 EC2主機IP:要移至EC2的哪個位置
|
- 搬移檔案完成後
1 2
| docker-compose up -d docker-compose ps
|
- 基本上到了這步就可以開啟瀏覽器看到redmine已經成功被建置成功了,但是redmine預設database是內建的sqlite,所以我們要來改變一下資料庫
- 先創建或者進去docker裡面拉出database.yml,這邊介紹如何進去docker裡面拉出database.yml,因為創建好像不太需要說明?
1 2 3 4 5 6 7 8 9 10 11
|
1. vim database.yml 2. touch database.yml
1. docker exec -it rdmine bash 2. cp /usr/src/redmine/config 3. ls -al 4. docker cp database.yml 你要在實體機器上存放的位置 5. exit
|
- 回到實體機器(EC2)上你就會發現你已經把database.yml存取出來了
- 接著我們來編輯database.yml
1 2 3 4 5 6 7 8 9 10
| 1. vim database.yml
production: adapter: postgresql encoding: utf8 database: redmine host: postgres的ip位置 username: 資料庫使用者或帳號 password: 資料庫密碼 pool: 25
|
- 看到這邊你可能會說啊postgres的IP位置我要怎麼得知,別急我接著來告訴你如何取得container的IP位置
1 2 3
| docker network ls docker network inspect networkname
|
- 修改完database.yml後,最重要的一步就是將database.yml放回去container裡面拉
1 2
| docker cp database.yml 要放到container的哪個位置 docker-compose restart redmine
|
- 走到這步,我們終於完成了redmine串接資料庫了,替自己拍拍手吧
以下步驟看個人喜好繼續學習
11. 但是呢redmine怎能少email這個服務呢,接著再來介紹一下redmine如何串連SMTP
12. 這邊我使用gmail的SMTP,但要進行這個步驟必須要先有自己的email domain,如果沒有的話應該是能用gmail的,但這部分我沒試過所以我也不太清楚
13. 一樣我這邊直接進入container拉出configuration.yml,詳細教學上面有講了我這邊就不多打了
14. 拉出後修改configuration.yml
1 2 3 4 5 6 7 8 9 10
| email_delivery: delivery_method: :smtp smtp_settings: enable_starttls_auto: true address: "smtp.gmail.com" port: 587 domain: authentication: :plain user_name: password:
|
- 修改完後將configuration.yml丟進去container接著重啟redmine服務
- 接著就大功告成拉可以開始使用redmine
- 其他的修改redmine和加入套件會再額外撰寫一篇文章,這邊就先不做敘述了