mirror of
https://github.com/ZuneDev/ZuneNetApi.git
synced 2026-07-27 13:13:20 -07:00
Split build into separate stages; Only publish current project instead of entire solution
284 lines
8.5 KiB
YAML
284 lines
8.5 KiB
YAML
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:
|