使用docker-compose整合MySQL

若要將nextcloud的資料庫改用mysql或mariadb,那就需要啟動一個資料庫的容器,並將兩者整合使用,單純使用docker指令設定當然可以,但是相當麻煩,有沒有比較能一目了然且簡單的作法,那就使用docker-compose

移除先前SQLite的設定,所以移除/mnt/raid/nextcloud

rm -rf /mnt/raid/nextcloud

建立docker-compose.yaml設定檔

version: '2'

services:

db:

image: mariadb:10

container_name: nextcloudDB

restart: always

volumes:

- /mnt/raid/nextcloud/mysql:/var/lib/mysql

- /etc/localtime:/etc/localtime:ro

environment:

- MYSQL_ROOT_PASSWORD=1234

- MYSQL_PASSWORD=1234

- MYSQL_DATABASE=nextcloud

- MYSQL_USER=nextcloud

networks:

nextcloud:

ipv4_address: 10.1.1.2

app:

image: nextcloud

container_name: nextcloud

ports:

- 8080:80

links:

- db

volumes:

- /mnt/raid/nextcloud:/var/www/html

- /etc/localtime:/etc/localtime:ro

restart: always

networks:

nextcloud:

ipv4_address: 10.1.1.3

networks:

nextcloud:

driver: bridge

ipam:

config:

- subnet: 10.1.1.0/24

gateway: 10.1.1.1

以下面一行指令完成

docker-compose up -d

進入 portainer管理頁面,你可以看到 nextcloud 與 mysql的IP網段被設定到我們自訂的區段,並且不使用dhcp,使用固定ip,如此,方不會於重新製作容器時,讓nextcloud找不到資料庫

關閉並移除容器的所有設定

docker-compose down

進入 ip:8080,會要你重設系統,此時改用mysql,注意ip使用自定的固定ip

桌面與手機的同步軟體

你可以到nextcloud官網或個人設定中的『同步客戶端』來安裝client端的同步軟體,其用法與Dropbox等類型軟體市相同的,差別只是nextcloud完全是屬於個人的私有雲

於其他設定中,可以設定單個檔案傳的大小限制

Last updated