version: "3" services: owncloud: image: owncloud/server:latest container_name: owncloud restart: unless-stopped security_opt: - no-new-privileges:true environment: - OWNCLOUD_DOMAIN=owncloud.euredomain.de - OWNCLOUD_DB_TYPE=mysql - OWNCLOUD_DB_NAME=owncloud - OWNCLOUD_DB_USERNAME=${OWNCLOUD_DBUSER} - OWNCLOUD_DB_PASSWORD=${OWNCLOUD_DBPW} - OWNCLOUD_DB_HOST=mariadb - OWNCLOUD_ADMIN_USERNAME=${OWNCLOUD_ADMINUSER} - OWNCLOUD_ADMIN_PASSWORD=${OWNCLOUD_ADMINPW} - 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: - ./files:/mnt/data labels: - "traefik.enable=true" - "traefik.http.routers.owncloud.entrypoints=http" - "traefik.http.routers.owncloud.rule=Host(`${OWNCLOUD_HOST}`)" - "traefik.http.middlewares.owncloud-https-redirect.redirectscheme.scheme=https" - "traefik.http.routers.owncloud.middlewares=owncloud-https-redirect" - "traefik.http.routers.owncloud-secure.entrypoints=https" - "traefik.http.routers.owncloud-secure.rule=Host(`${OWNCLOUD_HOST}`)" - "traefik.http.routers.owncloud-secure.tls=true" - "traefik.http.routers.owncloud-secure.tls.certresolver=http" - "traefik.http.routers.owncloud-secure.service=owncloud" - "traefik.http.services.owncloud.loadbalancer.server.port=${OWNCLOUD_LBPORT}" - "traefik.docker.network=traefik-proxy" - "traefik.http.routers.owncloud-secure.middlewares=secHeaders@file" networks: - owncloud - traefik-proxy depends_on: - mariadb - redis mariadb: image: mariadb:10.5 container_name: owncloud_mariadb restart: unless-stopped environment: - MYSQL_ROOT_PASSWORD=${MARIADB_SQLROOTPW} - MYSQL_USER=${MARIADB_SQLUSER} - MYSQL_PASSWORD=${MARIADB_SQLPW} - MYSQL_DATABASE=owncloud command: ["--max-allowed-packet=128M", "--innodb-log-file-size=64M"] healthcheck: test: ["CMD", "mysqladmin", "ping", "-u", "root", "--password=${MARIADB_SQLROOTPW} "] interval: 10s timeout: 5s retries: 5 volumes: - ./database:/var/lib/mysql networks: - owncloud redis: image: redis:6 container_name: owncloud_redis restart: unless-stopped command: ["--databases", "1"] healthcheck: test: ["CMD", "redis-cli", "ping"] interval: 10s timeout: 5s retries: 5 volumes: - ./redis:/data networks: - owncloud networks: owncloud: driver: bridge external: false name: int_owncloud traefik-proxy: external: true name: traefik-proxy