version: '3' volumes: nextcloud: db: networks: proxy: external: true nxc: external: false services: reverse-proxy: # The official v2 Traefik docker image image: traefik:latest container_name: traefik # Enables the web UI and tells Traefik to listen to docker command: --api.insecure=true --providers.docker ports: # The HTTP port - "80:80" - "443:443" # The Web UI (enabled by --api.insecure=true) - "8080:8080" volumes: # So that Traefik can listen to the Docker events - /var/run/docker.sock:/var/run/docker.sock:ro # Map the static configuration into the container - ./config/static.yml:/etc/traefik/traefik.yml:ro # Map the dynamic configuration into the container - ./config/dynamic.yml:/etc/traefik/dynamic.yml:ro # Map the certificats into the container - ./certs:/etc/certs:ro networks: - proxy db: image: mariadb:10.5 container_name: db restart: always command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW volumes: - db:/var/lib/mysql networks: - nxc environment: - MYSQL_ROOT_PASSWORD=Azerty1+ - MYSQL_PASSWORD=Azerty1+ - MYSQL_DATABASE=nextcloud - MYSQL_USER=nextcloud app: image: nextcloud container_name: app restart: always ports: - 8081:80 #links: depends_on: - db volumes: - nextcloud:/var/www/html networks: - proxy - nxc labels: # - "traefik.enable=true" - "traefik.http.routers.app.rule=Host(`mon.nxc`)" - "traefik.http.routers.app.tls=true" - "traefik.enable=true" - "traefik.docker.network=proxy" # - "traefik.http.routers.app.entrypoints=websecure" # - "traefik.http.routers.app.rule=Host(`mon.nxc`)" - "traefik.http.routers.app.service=app-service" - "traefik.http.services.app-service.loadbalancer.server.port=80" environment: - MYSQL_PASSWORD=Azerty1+ - MYSQL_DATABASE=nextcloud - MYSQL_USER=nextcloud - MYSQL_HOST=db