星期五, 8月 24, 2018

Nextcloud with docker 測試小記

Nextcloud with docker 測試小記

Server:
OS: openSUSE Leap 42.3 in Azure

Client:
OS: openSUSE Leap 42.3


因為 dropbox linux client 未來有可能不支援 非加密 EXT4 以外的檔案系統, 所以就來想替代方案, 目前鎖定 nextcloud, 而且他也有 docker 的版本


官方網站 https://nextcloud.com/

連線到 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 )


參考官方的方式 https://github.com/nextcloud/docker
使用 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:





沒有留言: