Files

95 lines
2.3 KiB
YAML

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