services:
owncloud_mariadb:
image: mariadb:latest
container_name: owncloud_mariadb
restart: always
networks:
- traefik_default
environment:
- MARIADB_ROOT_PASSWORD=owncloud
- MARIADB_USER=owncloud
- MARIADB_PASSWORD=owncloud
- MARIADB_DATABASE=owncloud
- MARIADB_AUTO_UPGRADE=1
command: ["--max-allowed-packet=128M", "--innodb-log-file-size=64M"]
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-u", "root", "--password=owncloud"]
interval: 10s
timeout: 5s
retries: 5
volumes:
- ./mysql:/var/lib/mysql
owncloud:
image: owncloud/server:latest
container_name: owncloud
restart: always
networks:
- traefik_default
depends_on:
- owncloud_mariadb
- redis
environment:
- OWNCLOUD_DOMAIN=192.168.22.10:8080
- OWNCLOUD_TRUSTED_DOMAINS=localhost,owncloud.cloche.ca
- OWNCLOUD_DB_TYPE=mysql
- OWNCLOUD_DB_NAME=owncloud
- OWNCLOUD_DB_USERNAME=owncloud
- OWNCLOUD_DB_PASSWORD=owncloud
- OWNCLOUD_DB_HOST=owncloud_mariadb
- OWNCLOUD_ADMIN_USERNAME=admin
- OWNCLOUD_ADMIN_PASSWORD="Admin123456789!"
- OWNCLOUD_MYSQL_UTF8MB4=true
- OWNCLOUD_REDIS_ENABLED=true
- OWNCLOUD_REDIS_HOST=redis
healthcheck:
test: ["CMD", "/usr/bin/healthcheck"]
interval: 30s
timeout: 10s
retries: 5
volumes:
- /data/owncloud/data:/mnt/data
labels:
- "traefik.enable=true"
- "traefik.http.routers.owncloud.rule=Host(`owncloud.cloche.ca`)"
- "traefik.http.routers.owncloud.entrypoints=websecure"
- "traefik.http.routers.owncloud.tls=true"
- "traefik.http.routers.owncloud.tls.certresolver=letsencrypt"
- "traefik.http.services.owncloud.loadbalancer.server.port=8080"
-
redis:
image: redis:6
container_name: owncloud_redis
restart: always
command: ["--databases", "1"]
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 10s
timeout: 5s
retries: 5
networks:
- traefik_default
volumes:
- ./redis:/data
networks:
traefik_default:
external: true