一つのデータコンテナを複数のDockerコンテナに共有させる② nextcloud with onlyoffice

1.  Docker compose file:

version: '3.3'

services:
  redis:
    image: redis:alpine
    container_name: redis
    restart: unless-stopped
    command: redis-server --requirepass YOU_PASSWORD_REDIS
    volumes:
      - redis:/data
    networks:
      database: {}
  
  nextcloud:
    image: nextcloud:latest
    container_name: nextcloud
    restart: always
    hostname: nextcloud
    ports:
      - 88:80
    networks:
      database: {}
    volumes:
      - nextcloud:/var/www/html
    environment:
      - MYSQL_PASSWORD=YOU_PASSWORD_ROOT
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=root
      - MYSQL_HOST=db
      - REDIS_HOST=redis
      - REDIS_HOST_PASSWORD=YOU_PASSWORD_REDIS
      - PHP_MEMORY_LIMIT=2048M
      - PHP_UPLOAD_LIMIT=16G
      - TZ=Asia/Tokyo
    depends_on:
      - redis
      - onlyoffice
 
  onlyoffice:
    container_name: onlyoffice
    image: onlyoffice/documentserver:latest
    restart: always
    networks:
      database: {}
    volumes:
      - ./volumes/onlyoffice/data:/var/www/onlyoffice/Data:rw
      - ./volumes/onlyoffice/logs:/var/log/onlyoffice

volumes:
  nextcloud:
    name: nextcloud
  redis:
    name: redis
        
networks:
  database:
    external: true
    name: database

2.Onlyoffice connector setting

nextcloud connector setting
setting2

3. システムのCronにバックグラウンドジョブを設定する

やり方は2通り:

3-1:ホストのCrontabを設定(実証済み)

まず、

docker exec --user www-data nextcloud php cron.php

が動くことを確認する。ホスト root で

crontab -e

として次の行を加える。

*/5 * * * * /usr/bin/docker exec --user www-data nextcloud php cron.php

3-2:ホストのsystemd-timerに設定(検証済み、こちらの方は軽快のよう)

下記リンクからDLしたnextcloudcron.service とnextcloudcron.timer をホストの /etc/systemd/system/ にコピー。

(システム起動時にサービスを有効にする)
systemctl enable nextcloudcron.timer
(今すぐサービスを開始する!)
systemctl start nextcloudcron.timer
(サービス状況の確認)
systemctl status nextcloudcron.timer

4. Nextcloud configファイルに下記追加:

nano volumes/nextcloud/config/config.php
'redis' =>
   array (
     'host' => 'redis',
     'port' => 6379,
     'password' => 'YOU_PASSWORD_REDIS',
),

'default_phone_region' => 'JP',
'trashbin_retention_obligation' => '30, 60',

 

返信を残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です