services: nextjs: container_name: ${REVERSE_DOMAIN} image: "${DOCKER_IMAGE}:${DOCKER_IMAGE_TAG}" environment: NODE_ENV: production LOGGER_LOG: "${LOGGER_LOG}" LOGGER_DEBUG: "${LOGGER_DEBUG}" APPLICATION_DOMAIN_NAME: "${APPLICATION_DOMAIN_NAME}" PYTHON_API_URL: "${PYTHON_API_URL}" APP_PORT: "${APP_PORT}" DOCKER_IMAGE: "${DOCKER_IMAGE}" DOCKER_IMAGE_TAG: "${DOCKER_IMAGE_TAG}" REVERSE_DOMAIN: "${REVERSE_DOMAIN}" networks: - shared_network - app_network labels: - "traefik.enable=true" - "traefik.http.routers.${REVERSE_DOMAIN}_nextjs.rule=Host(`${APPLICATION_DOMAIN_NAME}`)" - "traefik.http.routers.${REVERSE_DOMAIN}_nextjs.entrypoints=websecure" - "traefik.http.routers.${REVERSE_DOMAIN}_nextjs.tls.certresolver=myresolver" - "traefik.http.services.${REVERSE_DOMAIN}_nextjs.loadbalancer.server.port=${APP_PORT}" # VERY IMPORTANT WHEN TWO NETWORKS - "traefik.docker.network=shared_network" restart: always networks: shared_network: name: shared_network external: true app_network: name: "${REVERSE_DOMAIN}-app_network" external: false