self-hosting/roles/nextcloud-docker/files/nextcloud/docker-compose.yml
2018-01-10 20:11:08 +01:00

99 lines
2.1 KiB
YAML

version: '3'
networks:
proxy-tier:
external:
name: nginx-proxy
services:
web:
build: ./web
volumes:
- /var/lib/nextcloud:/var/www/html:ro
- /etc/localtime:/etc/localtime:ro
environment:
- VIRTUAL_HOST=${CLOUD_DOMAIN}
- VIRTUAL_NETWORK=nginx-proxy
- VIRTUAL_PORT=80
depends_on:
- app
- collabora
networks:
- proxy-tier
- default
restart: always
app:
build: ./app
volumes:
- ./config/config.php:/var/www/html/config/config.php
- /var/lib/nextcloud:/var/www/html
- /media:/media
- /etc/localtime:/etc/localtime:ro
environment:
- MYSQL_HOST=db
env_file:
- db.env
depends_on:
- db
- redis
restart: always
cron:
build: ./app
restart: always
volumes:
- /var/lib/nextcloud:/var/www/html
user: www-data
entrypoint: |
bash -c 'bash -s <<EOF
trap "break;exit" SIGHUP SIGINT SIGTERM
while [ ! -f /var/www/html/config/config.php ]; do
sleep 1
done
while true; do
php -f /var/www/html/cron.php
sleep 15m
done
EOF'
depends_on:
- db
- redis
db:
image: mariadb
volumes:
- /var/lib/mariadb/nextcloud:/var/lib/mysql
- /backups/nextcloud:/backups
- /etc/localtime:/etc/localtime:ro
environment:
- MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
- MYSQL_DATABASE=${MYSQL_DATABASE}
- MYSQL_USER=${MYSQL_USER}
- MYSQL_PASSWORD=${MYSQL_PASSWORD}
env_file:
- db.env
restart: always
redis:
image: redis
restart: always
collabora:
image: collabora/code
cap_add:
- MKNOD
expose:
- 9980
environment:
- domain=${CLOUD_DOMAIN}
- VIRTUAL_HOST=${COLLABORA_DOMAIN}
- VIRTUAL_NETWORK=nginx-proxy
- VIRTUAL_PORT=9980
# - VIRTUAL_PROTO=https
# - LETSENCRYPT_HOST=${COLLABORA_DOMAIN}
# - LETSENCRYPT_EMAIL=${LETSENCRYPT_EMAIL}
networks:
- proxy-tier
- default
restart: always