Nextcloud with docker 測試小記
Server:
OS: openSUSE Leap 42.3 in Azure
Client:
OS: openSUSE Leap 42.3
因為 dropbox linux client 未來有可能不支援 非加密 EXT4 以外的檔案系統, 所以就來想替代方案, 目前鎖定 nextcloud, 而且他也有 docker 的版本
連線到 openSUSE Leap 42.3 in Azure
切換為 root
>sudo su -
啟動 docker 服務
# systemctl start docker
一開始先來測試 單一容器 + HTTP 存取
Lab1: 單一容器 + HTTP存取
Server 端:
執行 nextcloud 容器
# docker run -d -p 80:80 nextcloud
# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
60e3b19053a3 nextcloud "/entrypoint.sh ap..." 7 seconds ago Up 5 seconds 0.0.0.0:80->80/tcp friendly_easley
在 Azure 設定 security group 允許 port 80 通過
連線 nextcloud (預設使用 SQL-Lite)
一開始會建立管理者帳號
輸入 使用者名稱 / 密碼 -- > 點選 完成設定
就會順利完成設定, 無痛完成
Client 端:
OS: openSUSE Leap 42.3
接下來就是安裝 Client 的應用程式
使用 zypper 安裝
# zypper install nautilus-extension-nextcloud nextcloud-client
Loading repository data...
Reading installed packages...
Resolving package dependencies...
The following 17 NEW packages are going to be installed:
libQt5Positioning5 libQt5Sensors5 libQt5Sensors5-imports libQt5WebChannel5
libQt5WebChannel5-imports libQt5WebKit5 libQt5WebKit5-imports
libQt5WebKitWidgets5 libgypsy0 libnextcloudsync0 libqt5keychain1
libqt5keychain1-lang nautilus-extension-nextcloud nextcloud-client
nextcloud-client-lang python-nautilus typelib-1_0-Nautilus-3_0
The following 2 recommended packages were automatically selected:
libqt5keychain1-lang nextcloud-client-lang
The following package is suggested, but will not be installed:
nextcloud-client-doc
17 new packages to install.
Overall download size: 11.0 MiB. Already cached: 0 B. After the operation,
additional 44.9 MiB will be used.
Continue? [y/n/...? shows all options] (y):
安裝完成之後, 就可以執行 Nextcloud desktop 程式
一開始會出現Nextcloud精靈 ( 翻譯沒有很準確 )
輸入 伺服器位置 -- > 下一個
輸入使用者名稱與密碼 -- > 下一個
設定要同步的選項 -- > 點選 連線中
因為有跟檔案總管整合, 所以可以使用瀏覽器的方式或是資料夾的方式 -- > 點選 完成
預設會在 $HOME/nextcloud , 可以觀察同步狀況
Lab2: 2個容器( nextcloud & MariaDB ) + HTTP存取
Nextcloud 預設使用 SQLite, 但是他有建議, 如果是用桌面版程式同步, 就不建議用 SQLite
要使用 MySQL / MariaDB 或是其他的資料庫
接下來就來實作 使用 2個容器 nextcloud 與 mariadb 來提供服務
Server 端:
接下來嘗試使用 MySQL / MariaDB 方式
將剛剛的 container 刪除 ( 使用 docker stop / docker rm )
使用 docker-compose 方式來建立
首先要先安裝 docker-compose 指令
使用 zypper 安裝
# zypper install docker-compose
Loading repository data...
Reading installed packages...
Resolving package dependencies...
The following 32 NEW packages are going to be installed:
docker-compose python-PySocks python-PyYAML python-appdirs python-backports python-backports.ssl_match_hostname
python-cached-property python-certifi python-cffi python-chardet python-cryptography python-docker-py python-docker-pycreds
python-dockerpty python-docopt python-enum34 python-functools32 python-idna python-ipaddress python-jsonschema python-ndg-httpsclient
python-packaging python-py python-pyOpenSSL python-pycparser python-pyparsing python-requests python-setuptools python-six
python-texttable python-urllib3 python-websocket-client
The following 5 recommended packages were automatically selected:
python-PySocks python-cryptography python-idna python-ndg-httpsclient python-pyOpenSSL
32 new packages to install.
Overall download size: 3.2 MiB. Already cached: 0 B. After the operation, additional 15.3 MiB will be used.
Continue? [y/n/...? shows all options] (y): Y
參考官方的設定建立 docker-compose.yml 檔案
- 檔案內紅色字體內, 請自行設定 MySQL 的密碼
- 我把官方的 port 8080 改為 port 80
# vi docker-compose.yml
version: '2'
volumes:
nextcloud:
db:
services:
db:
image: mariadb
restart: always
volumes:
- db:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=nextcloud
- MYSQL_PASSWORD=nextcloud
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
app:
image: nextcloud
ports:
- 80:80
links:
- db
volumes:
- nextcloud:/var/www/html
restart: always
使用 docker-compose 指令建立
# docker-compose up -d
接下來連線到 nextcloud
要注意的是
- 資料庫要選 MySQL / MariaDB
- 資料庫帳號密碼 要使用 docker-compose.yml 內的設定
- 主機的部份因為是使用 docker, 然後是分開的 container, 這邊就用 db:3306
觀察相關資訊
# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
de1741e2abae nextcloud "/entrypoint.sh ap..." 27 seconds ago Up 24 seconds 0.0.0.0:80->80/tcp root_app_1
296498164d13 mariadb "docker-entrypoint..." 29 seconds ago Up 26 seconds 3306/tcp root_db_1
Client 的連線方式一樣, 就不重複了
接下來文章再來挑戰, HTTPS 方式
也算往 nextcloud 邁進一步
~ enjoy it
Reference:
沒有留言:
張貼留言