Answer本身需要資料庫,支援SQLite與MYSQL,我選擇了後者,而Answer雖然支援多語系,但目前版本有BUG,會無法正常的讀取語系檔。另外Marius他的方式比較簡略,沒有考慮到非英語系使用需求,另外雖然用上了docker-compose,yaml檔雖然配置了資料庫資訊,實際安裝卻還是得再一步步配置,且他是連資料庫都要使用docker,而群暉本身就帶有mariadb了我覺得應該不需再弄個mysql docker,節省點資源吧,因此我經過多天嘗試,終於成功做到了:
- 1、使用群暉自身的MariaDB做Answer的資料庫
- 2、Portainer一鍵佈署
- 3、解決Answer目前
1.0.5
版仍存在的多語系讀取無效問題
Step1、請先用群暉的phpmyadmin先建好一個空資料庫,DB名字就叫answer,編碼utf8mb4_unicode_ci,並替它創一個專用User也叫answer
Step2、登入DSM,在docker路徑下新增answer資料夾,並在裡面再創data資料夾,data裡面再創cache、conf、i18n、uploads四個資料夾
![](https://img.techeasy.org/images/2023/02/22/image.png)
Step3、下載這個i18n壓縮檔,上傳到Step2的data下,然後解壓縮,確認有i18n資料夾出現就成功了,這個步驟對繁體的使用者意義在於官方翻譯更新得很慢,直接用我翻譯好的正體中文,用語習慣都符合咱們台灣人😊
![](https://img.techeasy.org/images/2023/02/22/image824b7e064b5d863e.md.png)
Step4、登入portainer(須另行架設,否則就要ssh進nas使用docker-compose佈署),新增一個stack,命名answer,內容範本如下:
version: "3.9"
services:
answer:
image: answerdev/answer:latest
container_name: Answer
hostname: answer
mem_limit: 1g
cpu_shares: 512
security_opt:
- no-new-privileges=true
healthcheck:
test: wget --no-verbose --tries=1 --spider http://localhost:80/ || exit 1
ports:
- 9835:80
volumes:
- /volume1/docker/answer/data/cache:/data/cache:rw
- /volume1/docker/answer/data/conf:/data/conf:rw
- /volume1/docker/answer/data/i18n:/data/i18n:ro #資料夾唯獨,強制容器只能讀我們自訂的翻譯
- /volume1/docker/answer/data/uploads:/data/uploads:rw
environment:
AUTO_INSTALL: true
DB_TYPE: mysql
DB_USERNAME: answer #Step1建立的db使用者名稱
DB_PASSWORD: password #Step1建立的db使用者密碼
DB_HOST: xxx.xxx.xxx.xxx:3307 #群暉mariadb port是3307
DB_NAME: answer #Step1建立的db名稱
LANGUAGE: zh-TW
SITE_NAME: 網站名稱
SITE_URL: https://xxx.com #網站url
CONTACT_EMAIL: #網站聯絡人email
ADMIN_NAME: #管理員帳號
ADMIN_PASSWORD: #管理員密碼
ADMIN_EMAIL: #管理員信箱
restart: always
Step5、按下deploy the stack,順利的話大約5分鐘內就會自動佈署完了,包含將資料庫建立完成等等
成果圖:
![](https://img.techeasy.org/images/2023/02/22/image74bc96b87d0807cc.md.png)