docker-compose:Nextcloud

 

Docker-compose安裝:預先編寫docker-compose.yml檔案,將各container的參數先設定好,只須執行一個步驟,即可一次將所有container建立。

1.編寫docker-compose.yml檔案:確認compose版本,因各版本參數設定略有不同,因先確認版本後,再編寫參數。

2.docker-compose.yml檔案放置的資料夾名稱會影響network名稱設定,network的選擇不同,會影響container之間的連結關係。
例:當檔案所在的資料夾名稱為"APP",則docker-compose up執行後所建立的container,network名稱皆會顯示為"APP_default",為Bridge Mode。
但會與預設的Bridge Mode網段不一樣。

3.三個container跑完,用瀏覽器開啟nextcloud時,第一次登入畫面需先設定nextcloud連接DB的參數與管理者帳密。
可利用docker-compose安裝時,將nextcloud連接DB的環境參數(environment)先設定,當dock-compose完成時,只需設定管理者密碼即可。

安裝Nextcloud的docker-compose.yml檔案內容如下:
TZ:timezone,建立container時,即加入環境變數 TZ:Asia\Taipei

==================================================

version: "3"
services:
mariadb:
image: mariadb
container_name: kccnas2db
hostname: kccnas2db
restart: always
volumes:
- D:/DOCKER/Mariadb:/var/lib/mysql
ports:
- "3306:3306"
environment:
MYSQL_ROOT_PASSWORD: Kcc@35954967
MYSQL_DATABASE: kccnas2db
MYSQL_USER: kcc
MYSQL_PASSWORD: Kcc@35954967
TZ: Asia/Taipei
command: 'mysqld --innodb-flush-method=fsync'

nextcloud:
image: nextcloud
container_name: nextcloud
hostname: kccnextcloud
restart: always
volumes:
- D:/DOCKER/Nextcloud:/var/www/html
links:
- mariadb:DB
ports:
- "45080:80"
environment:
MYSQL_DATABASE: kccnas2db
MYSQL_USER: kcc
MYSQL_PASSWORD: Kcc@35954967
MYSQL_HOST: kccnas2db:3306
TZ: Asia/Taipei

phpmyadmin:
image: phpmyadmin/phpmyadmin
container_name: kccmyadmin
hostname: kccmyadmin
restart: always
ports:
- "45081:80"
links:
- mariadb:myadmin
environment:
PMA_HOST: kccnas2db
TZ: Asia/Taipei

 

==================================================


修改Nextcloud參數:開啟原檔將以下參數新增,不要用已改好的config.php檔案做取代。
如用已改好的config.php檔案做取代,則DB的container logs出現:access denied for user 'admin'@'localhost' (using password yes)。
因為每次建立後的參數會有所不同(config.php內紀錄的password會以亂數產生),如用已先建立的檔案取代,則會跟DB的資料不同。


(1)在config.php新增,避免docker版nextcloud檢查權限問題
'check_data_directory_permissions' => false,

(2)trusted_domains中預設只有設定IP,新增domain name,避免輸入domain name時,無法開啟網頁。
'trusted_domains' =>
array (
0 => '192.168.1.15:45081',
1 => 'nas2.kcc-zip.com:45081',
2 => '59.124.103.37:45081'


注意:
當主機重開機時,Docker for Desktop會啟動,container會啟動,此時nextcloud登入畫面會變回設定畫面。
須將container全部 STOP 後,再 RESTSRT 才會恢復成原先以設定好的登入畫面。