version: '3.3' services: db: image: mysql:5.7 volumes: - ${VOLUMES_DIR}/volumes/db:/var/lib/mysql restart: unless-stopped environment: MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD} MYSQL_DATABASE: ${MYSQL_DATABASE} MYSQL_USER: ${MYSQL_USER} MYSQL_PASSWORD: ${MYSQL_PASSWORD} baikal: depends_on: - db build: context: . dockerfile: Dockerfile ports: - "${EXPOSE_PORT}:80" environment: CONTAINER_DOMAIN_NAME: ${DOMAIN_NAME} CONTAINER_HOST_NAME: ${HOST_NAME} restart: unless-stopped labels: - "traefik.http.routers.baikal.rule=Host(`${HOST_NAME}.${DOMAIN_NAME}`)" - "traefik.http.middlewares.baikal-path.replacepathregex.regex=^/${PATH_PREFIX}/(.*)" - "traefik.http.middlewares.baikal-path.replacepathregex.replacement=/$$1" - "traefik.http.routers.baikal-nosub.rule=(Host(`${DOMAIN_NAME}`) || Host(`www.${DOMAIN_NAME}`) && PathPrefix(`${PATH_PREFIX}`)" - "traefik.http.routers.baikal-nosub.middlewares=baikal-path@docker" - "traefik.http.routers.baikal-wellknown.rule=(Host(`${DOMAIN_NAME}`) || Host(`www.${DOMAIN_NAME}`) && (Path(`.well-known/caldav`) || Path(`.well-known/carddav`))" volumes: - ${VOLUMES_DIR}/volumes/Specific:/var/www/html/Specific