Confluence 容器化使用拾遺
前一篇 內容介紹瞭如何快速使用容器搭建Confluence ,在一週的實際使用之後,我們發現了一些小問題,本篇將作為之前內容的補充。
如何修正應用時區
應用啟動之後,你將看到時區預設是:GMT +0 ,這顯然不符合我們的需求。
要解決這個問題,可以通過掛載宿主機/etc/localtime
到容器內,並在JVM變數中新增-Duser.timezone=GMT+08
引數。
同時在掛載的時候要注意,為了避免容器內部應用修改/etc/localtime
,檔案需要設定為只讀。
上面操作看起來很麻煩,但是實際上配置程式碼很簡單,比如這樣:
environment: - 'CATALINA_OPTS= -Duser.timezone=GMT+08' volumes: - /etc/localtime:/etc/localtime:ro
修改可用記憶體資源
當使用人數比較少、內容也比較少的時候,執行 Confluence 並不會出現什麼異常。但是當內容多了、或者使用者數多了之後,Confluence 會出現一些效能問題,比如卡頓。
此時,可以通過增加可用記憶體資源來解決這個問題。官方預設數值都是1024m
,修改配置的時候,需要我們根據實際情況進行調節:
-
比如我有一臺
4C8G
的主機,考慮到系統程序、運維軟體、容器服務的消耗,我選擇給予 Confluence 6GB 記憶體的上限,而下限和預設保持一致就好。
舉個例子,下面這段配置賦予程式可用記憶體範圍就是1G
到6G
。
environment: - 'JVM_MINIMUM_MEMORY=1024m' - 'JVM_MAXIMUM_MEMORY=6144m'
關閉資料分析收集
官方有預設開啟資料分析功能,會將你的使用者行為(不含資料),傳送至廠商資料分析平臺。
常規的關閉方式是使用管理員賬號,選擇“禁用”按鈕,但是如果你發現禁用不靈,可以通過介面呼叫手動關閉分析服務。
在容器內部執行下面的命令(假設超級管理員賬號和密碼都是admin
):
curl -vvv -H "Content-Type:application/json" -H "Accept:application/json" --user admin:admin -X PUT -d '{"analyticsEnabled": "false"}' http://localhost:8090/rest/analytics/1.0/config/enable
完整配置
最後,將上述修正綜合一下,完整的配置檔案如下:
version: '3' services: confluence: image: atlassian/confluence-server:6.15.1-alpine expose: - 8090 - 8091 networks: - traefik labels: - "traefik.enable=true" - "traefik.port=8090" - "traefik.frontend.rule=Host:${DOMAIN}" - "traefik.frontend.entryPoints=http,https" - "traefik.frontend.auth.basic.removeHeader=true" - "traefik.frontend.auth.basic=${BASIC_AUTH}" environment: - 'CATALINA_OPTS= -Duser.timezone=GMT+08' - 'JVM_MINIMUM_MEMORY=1024m' - 'JVM_MAXIMUM_MEMORY=6144m' volumes: - ./data:/var/atlassian/application-data/confluence - ./mysql-connector-java-5.1.47.jar:/opt/atlassian/confluence/confluence/WEB-INF/lib/mysql-connector-java-5.1.47.jar - ./server.xml:/opt/atlassian/confluence/conf/server.xml - /etc/localtime:/etc/localtime:ro networks: traefik: external: true
最後
額外說一句,官方容器映象的文件真的是一塌糊塗。不過功能設計是真的好用,特別適合定製化需求不強烈的初創公司/團隊使用。