networks: backend: name: backend x-env-aspnet: &env-aspnet ZuneNetContext__ConnectionString: ${ZuneNetContext__ConnectionString} ZuneNetContext__DatabaseName: ${ZuneNetContext__DatabaseName} services: mongodb: image: mongo:latest environment: MONGO_INITDB_ROOT_USERNAME: ${MONGO_INITDB_ROOT_USERNAME} MONGO_INITDB_ROOT_PASSWORD: ${MONGO_INITDB_ROOT_PASSWORD} ports: - 27017:27017 volumes: - mongodb_data_container:/data/db networks: - backend traefik: image: traefik:v3.3 ports: - "80:80" - "443:443" - "8080:8080" volumes: - /var/run/docker.sock:/var/run/docker.sock - "./traefik/traefik.yml:/traefik.yml:ro" - "traefik-certs:/certs" networks: - backend catalog: build: context: ./ dockerfile: ./Dockerfile args: PROJ_NAME: Zune.Net.Catalog depends_on: - mongodb - traefik networks: - backend ports: - "8070:8080" labels: - "traefik.http.routers.catalog.rule=Host(`catalog.${DOMAIN_ROOT}`)" - "traefik.http.routers.catalog-ssl.rule=Host(`catalog-ssl.${DOMAIN_ROOT}`)" - "traefik.http.routers.catalog-ssl.entrypoints=websecure" - "traefik.http.routers.catalog-ssl.tls.certresolver=letsencrypt" - "traefik.http.routers.catalog-og.rule=Host(`catalog.zune.net`)" - "traefik.http.routers.catalog-ssl-og.rule=Host(`catalog-ssl.zune.net`)" - "traefik.http.routers.catalog-ssl-og.entrypoints=websecure" environment: << : [*env-aspnet] catalog-image: build: context: ./ dockerfile: ./Dockerfile args: PROJ_NAME: Zune.Net.Catalog.Image depends_on: - mongodb - traefik networks: - backend ports: - "8071:8080" labels: - "traefik.http.routers.catalog-image.rule=Host(`image.catalog.${DOMAIN_ROOT}`)" - "traefik.http.routers.catalog-image-ssl.rule=Host(`image.catalog.${DOMAIN_ROOT}`)" - "traefik.http.routers.catalog-image-ssl.entrypoints=websecure" - "traefik.http.routers.catalog-image-ssl.tls.certresolver=letsencrypt" - "traefik.http.routers.catalog-image-og.rule=Host(`image.catalog.zune.net`)" - "traefik.http.routers.catalog-image-ssl-og.rule=Host(`image.catalog.zune.net`)" - "traefik.http.routers.catalog-image-ssl-og.entrypoints=websecure" environment: << : [*env-aspnet] commerce: build: context: ./ dockerfile: ./Dockerfile args: PROJ_NAME: Zune.Net.Commerce depends_on: - mongodb - traefik networks: - backend ports: - "8072:8080" labels: - "traefik.http.routers.commerce.rule=Host(`commerce.${DOMAIN_ROOT}`)" - "traefik.http.routers.commerce-ssl.rule=Host(`commerce-ssl.${DOMAIN_ROOT}`)" - "traefik.http.routers.commerce-ssl.entrypoints=websecure" - "traefik.http.routers.commerce-ssl.tls.certresolver=letsencrypt" - "traefik.http.routers.commerce-og.rule=Host(`commerce.zune.net`)" - "traefik.http.routers.commerce-ssl-og.rule=Host(`commerce-ssl.zune.net`)" - "traefik.http.routers.commerce-ssl-og.entrypoints=websecure" environment: << : [*env-aspnet] inbox: build: context: ./ dockerfile: ./Dockerfile args: PROJ_NAME: Zune.Net.Inbox depends_on: - mongodb - traefik networks: - backend ports: - "8073:8080" labels: - "traefik.http.routers.inbox.rule=Host(`inbox.${DOMAIN_ROOT}`)" - "traefik.http.routers.inbox-ssl.rule=Host(`inbox-ssl.${DOMAIN_ROOT}`)" - "traefik.http.routers.inbox-ssl.entrypoints=websecure" - "traefik.http.routers.inbox-ssl.tls.certresolver=letsencrypt" - "traefik.http.routers.inbox-og.rule=Host(`inbox.zune.net`)" - "traefik.http.routers.inbox-ssl-og.rule=Host(`inbox-ssl.zune.net`)" - "traefik.http.routers.inbox-ssl-og.entrypoints=websecure" environment: << : [*env-aspnet] login: build: context: ./ dockerfile: ./Dockerfile args: PROJ_NAME: Zune.Net.Login depends_on: - mongodb - traefik networks: - backend ports: - "8074:8080" labels: - "traefik.http.routers.login.rule=Host(`login.${DOMAIN_ROOT}`)" - "traefik.http.routers.login-ssl.rule=Host(`login-ssl.${DOMAIN_ROOT}`)" - "traefik.http.routers.login-ssl.entrypoints=websecure" - "traefik.http.routers.login-ssl.tls.certresolver=letsencrypt" - "traefik.http.routers.login-og.rule=Host(`login.zune.net`)" - "traefik.http.routers.login-ssl-og.rule=Host(`login-ssl.zune.net`)" - "traefik.http.routers.login-ssl-og.entrypoints=websecure" environment: << : [*env-aspnet] metaservices: build: context: ./ dockerfile: ./Dockerfile args: PROJ_NAME: Zune.Net.MetaServices depends_on: - mongodb - traefik networks: - backend ports: - "8075:8080" labels: - "traefik.http.routers.metaservices.rule=Host(`metaservices.${DOMAIN_ROOT}`)" - "traefik.http.routers.metaservices-ssl.rule=Host(`metaservices-ssl.${DOMAIN_ROOT}`)" - "traefik.http.routers.metaservices-ssl.tls.certresolver=letsencrypt" - "traefik.http.routers.metaservices-ssl.entrypoints=websecure" environment: << : [*env-aspnet] mix: build: context: ./ dockerfile: ./Dockerfile args: PROJ_NAME: Zune.Net.Mix depends_on: - mongodb - traefik networks: - backend ports: - "8076:8080" labels: - "traefik.http.routers.mix.rule=Host(`mix.${DOMAIN_ROOT}`)" - "traefik.http.routers.mix-ssl.rule=Host(`mix-ssl.${DOMAIN_ROOT}`)" - "traefik.http.routers.mix-ssl.tls.certresolver=letsencrypt" - "traefik.http.routers.mix-ssl.entrypoints=websecure" - "traefik.http.routers.mix-og.rule=Host(`mix.zune.net`)" - "traefik.http.routers.mix-ssl-og.rule=Host(`mix-ssl.zune.net`)" - "traefik.http.routers.mix-ssl-og.entrypoints=websecure" environment: << : [*env-aspnet] socialapi: build: context: ./ dockerfile: ./Dockerfile args: PROJ_NAME: Zune.Net.SocialApi depends_on: - mongodb - traefik networks: - backend ports: - "8077:8080" labels: - "traefik.http.routers.socialapi.rule=Host(`socialapi.${DOMAIN_ROOT}`)" - "traefik.http.routers.socialapi-ssl.rule=Host(`socialapi-ssl.${DOMAIN_ROOT}`)" - "traefik.http.routers.socialapi-ssl.tls.certresolver=letsencrypt" - "traefik.http.routers.socialapi-ssl.entrypoints=websecure" - "traefik.http.routers.socialapi-og.rule=Host(`socialapi.zune.net`)" - "traefik.http.routers.socialapi-ssl-og.rule=Host(`socialapi-ssl.zune.net`)" - "traefik.http.routers.socialapi-ssl-og.entrypoints=websecure" environment: << : [*env-aspnet] tiles: build: context: ./ dockerfile: ./Dockerfile args: PROJ_NAME: Zune.Net.Tiles depends_on: - mongodb - traefik networks: - backend ports: - "8078:8080" labels: - "traefik.http.routers.tiles.rule=Host(`tiles.${DOMAIN_ROOT}`)" - "traefik.http.routers.tiles-ssl.rule=Host(`tiles-ssl.${DOMAIN_ROOT}`)" - "traefik.http.routers.tiles-ssl.tls.certresolver=letsencrypt" - "traefik.http.routers.tiles-ssl.entrypoints=websecure" - "traefik.http.routers.tiles-og.rule=Host(`tiles.zune.net`)" - "traefik.http.routers.tiles-ssl-og.rule=Host(`tiles-ssl.zune.net`)" - "traefik.http.routers.tiles-ssl-og.entrypoints=websecure" environment: << : [*env-aspnet] tuners: build: context: ./ dockerfile: ./Dockerfile args: PROJ_NAME: Zune.Net.Tuners depends_on: - mongodb - traefik networks: - backend ports: - "8079:8080" labels: - "traefik.http.routers.tuners.rule=Host(`tuners.${DOMAIN_ROOT}`)" - "traefik.http.routers.tuners-ssl.rule=Host(`tuners-ssl.${DOMAIN_ROOT}`)" - "traefik.http.routers.tuners-ssl.tls.certresolver=letsencrypt" - "traefik.http.routers.tuners-ssl.entrypoints=websecure" - "traefik.http.routers.tuners-og.rule=Host(`tuners.zune.net`)" - "traefik.http.routers.tuners-ssl-og.rule=Host(`tuners-ssl.zune.net`)" - "traefik.http.routers.tuners-ssl-og.entrypoints=websecure" environment: << : [*env-aspnet] volumes: traefik-certs: mongodb_data_container: