docker composeを使ってonlyofficeが使用できるnextcloudを構築する

docker composeを使ってonlyofficeが使用できるnextcloudを構築する

docker composerを利用してofficeのドキュメントが編集できる「onlyofficer」が使用できるnextcloudを構築するまでの手順を記述してます。

環境

  • OS ubuntu21.04
  • docker 20.10.6
  • docker-compose 1.28.6

事前準備

事前にdockerや必要ツールをインストールしておきます。

curlとgitのインストール

sudo apt install curl git

dockerインストール

curl -sSL https://get.docker.com/ | sh
systemctl start docker
sudo usermod -aG docker ${USER}

docker-composeインストール

sudo curl -L "https://github.com/docker/compose/releases/download/1.28.6/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

インストールが終われば、一旦セッションを抜けます。

su - ${USER}

docker-compos.yml作成

gitから入手可能です。

git clone https://github.com/ONLYOFFICE/docker-onlyoffice-nextcloud

移動します。

cd docker-onlyoffice-nextcloud

docker-compos.ymlの中は、以下のようになってます。

version: '3'
services:
  app:
    container_name: app-server
    image: nextcloud:fpm
    restart: always
    expose:
      - '80'
      - '9000'
    volumes:
      - app_data:/var/www/html
  onlyoffice-document-server:
    container_name: onlyoffice-document-server
    image: onlyoffice/documentserver:latest
    restart: always
    expose:
      - '80'
      - '443'
    volumes:
      - document_data:/var/www/onlyoffice/Data
      - document_log:/var/log/onlyoffice
  nginx:
    container_name: nginx-server
    image: nginx
    restart: always
    ports:
      - 80:80
      - 443:443
    volumes:
      - ./nginx.conf:/etc/nginx/nginx.conf
      - app_data:/var/www/html
volumes:
  document_data:
  document_log:
  app_data:
  mysql_data:

mysqlを使用する場合は、以下のように編集します。

version: '3'
services:
  app:
    container_name: app-server
    image: nextcloud:fpm
    restart: always
    expose:
      - '80'
      - '9000'
    volumes:
      - app_data:/var/www/html
  db:
    image: mariadb
    command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
    restart: always
    volumes:
      - mysql_data:/var/lib/mysql
    ports:
      - 3309:3306
    environment:
      - MYSQL_ROOT_PASSWORD=pwd
      - MYSQL_PASSWORD=pwd
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=nextcloud
  onlyoffice-document-server:
    container_name: onlyoffice-document-server
    image: onlyoffice/documentserver:latest
    restart: always
    expose:
      - '80'
      - '443'
    volumes:
      - document_data:/var/www/onlyoffice/Data
      - document_log:/var/log/onlyoffice
  nginx:
    container_name: nginx-server
    image: nginx
    restart: always
    ports:
      - 80:80
      - 443:443
    volumes:
      - ./nginx.conf:/etc/nginx/nginx.conf
      - app_data:/var/www/html
volumes:
  document_data:
  document_log:
  app_data:
  mysql_data:

※DBに接続できない場合は、「command」部分を以下に変更してください。

command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW --innodb-file-per-table=1 --skip-innodb-read-only-compressed

nextcloud起動

以下のコマンドを実行して「nextcloud」を起動します。

docker-compose up -d
sudo bash set_configuration.sh

ブラウザから https://プライベートIP or サーバーアドレスにアクセスします。

ログイン画面が表示されます。

管理者アカウントを作成すればでログイン可能です。

DBはMysqlを使用する場合は、ymlの設定通りに入力します。
user : nextcloud
password : pwd
database : nextcloud
host : docker-onlyoffice-nextcloud_db_1

※設定後に「504」がでたらリロードしてみて下さい。

ログイン後に設定より「ONLYOFFICE」が設定されていれば構築は完了です。