services: # Microsoft SQL Server # https://hub.docker.com/r/microsoft/mssql-server/ shop-sql-server: image: mcr.microsoft.com/mssql/server:2022-latest restart: unless-stopped environment: ACCEPT_EULA: "Y" MSSQL_SA_PASSWORD: ${MSSQL_SA_PASSWORD} MSSQL_PID: Express MSSQL_COLLATION: SQL_Latin1_General_CP1_CI_AS ports: - "${MSSQL_PORT}:${MSSQL_PORT}" volumes: - sql_data:/var/opt/mssql networks: - shop-network logging: driver: "json-file" options: max-size: "10m" max-file: "3" # MongoDB # https://hub.docker.com/_/mongo/ shop-mongo-server: image: mongo:latest restart: unless-stopped ports: - "${MONGO_PORT}:${MONGO_PORT}" volumes: - mongo_data:/data/db networks: - shop-network logging: driver: "json-file" options: max-size: "10m" max-file: "3" # Redis Cache # https://hub.docker.com/_/redis/ shop-redis-server: image: redis:latest restart: unless-stopped command: redis-server --requirepass ${REDIS_PASSWORD} ports: - "${REDIS_PORT}:${REDIS_PORT}" volumes: - redis_data:/data networks: - shop-network logging: driver: "json-file" options: max-size: "10m" max-file: "3" # Shop API Container (NET Core) shop-api: build: context: . dockerfile: src/Shop.PublicApi/Dockerfile image: shop-api:latest restart: on-failure env_file: - ./.env environment: ASPNETCORE_ENVIRONMENT: ${ASPNETCORE_ENVIRONMENT} ConnectionStrings__SqlConnection: "Server=shop-sql-server,1433;Database=ShopContext;User Id=sa;Password=${MSSQL_SA_PASSWORD};TrustServerCertificate=True;" ConnectionStrings__NoSqlConnection: "mongodb://shop-mongo-server:27017" ConnectionStrings__CacheConnection: "shop-redis-server:6379,password=${REDIS_PASSWORD},abortConnect=false" ports: - "5000:80" depends_on: - shop-sql-server - shop-mongo-server - shop-redis-server networks: - shop-network logging: driver: "json-file" options: max-size: "10m" max-file: "3" volumes: sql_data: redis_data: mongo_data: networks: shop-network: driver: bridge