docker-compose範例
version: '3.9'
services:
mariadb:
container_name: Nextcloud-DB
image: mariadb:jammy
security_opt:
- no-new-privileges:true
command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW --innodb-read-only-compressed=OFF
volumes:
- ./db:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=rootpassword #ROOT的密碼
- MYSQL_PASSWORD=mysqlpassword #MYSQL的密碼
- MYSQL_DATABASE=nextcloud #資料庫名稱
- MYSQL_USER=nextcloud
- TZ=Asia/Taipei
restart: on-failure:5
redis:
image: redis
container_name: Nextcloud-REDIS
hostname: nextcloudredis
healthcheck:
test: ["CMD-SHELL", "redis-cli ping || exit 1"]
volumes:
- ./redis:/data
environment:
TZ: Asia/Taipei
restart: on-failure:5
nextcloud:
container_name: Nextcloud
ports:
- 8082:80
depends_on:
mariadb:
condition: service_started
redis:
condition: service_healthy
environment:
- REDIS_HOST=nextcloudredis
- NEXTCLOUD_TRUSTED_DOMAINS=cloud.xxx.com 192.168.1.2 #你nextcloud的domain跟你的群暉區網ip
- TRUSTED_PROXIES=cloud.xxx.com 192.168.1.2 #你nextcloud的domain跟你的群暉區網ip
- OVERWRITEHOST=cloud.xxx.com #你nextcloud的domain
- OVERWRITEPROTOCOL=https
- MYSQL_PASSWORD=mysqlpassword #與上面資料庫一致
- MYSQL_DATABASE=nextcloud #與上面資料庫一致
- MYSQL_USER=nextcloud #與上面資料庫一致
- MYSQL_HOST=mariadb
healthcheck:
test: curl -f http://localhost:80/ || exit 1
volumes:
- ./html:/var/www/html
- ./custom_apps:/var/www/html/custom_apps
- ./config:/var/www/html/config
- ./data:/var/www/html/data
- ./themes:/var/www/html/themes
image: nextcloud
restart: on-failure:5
cron:
image: nextcloud:apache
container_name: Nextcloud-CRON
restart: always
volumes:
- ./config:/var/www/html/config
- ./html:/var/www/html
- ./custom_apps:/var/www/html/custom_apps
- ./data:/var/www/html/data
entrypoint: /cron.sh
depends_on:
mariadb:
condition: service_started
redis:
condition: service_started
先準備好該有的參考資料夾與docker-compose文件
在Container Manager的專案按新增
命名專案名稱並選擇檔案路徑
Exit Code: 0代表成功建立
反向代理設定
更改你nextcloud的domain跟群暉區網IP
建議新增Websocket,有些服務用的到
設定好了之後在網址列打你nextcloud的domain就會看到下面畫面