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
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',