refactor: enhance docker-compose configuration for clarity and consistency

This commit is contained in:
Jean Gatto
2025-09-11 16:22:58 -03:00
parent 0ab356ddc6
commit 57d89c7b62
+39 -19
View File
@@ -1,58 +1,73 @@
services: services:
# Microsoft SQL Server # Microsoft SQL Server
# https://hub.docker.com/r/microsoft/mssql-server/
shop-sql-server: shop-sql-server:
image: mcr.microsoft.com/mssql/server:2022-latest image: mcr.microsoft.com/mssql/server:2022-latest
container_name: shop-sql-server restart: unless-stopped
environment: environment:
- ACCEPT_EULA=Y ACCEPT_EULA: "Y"
- MSSQL_SA_PASSWORD=${MSSQL_SA_PASSWORD} MSSQL_SA_PASSWORD: ${MSSQL_SA_PASSWORD}
- MSSQL_PID=Express MSSQL_PID: Express
- MSSQL_COLLATION=SQL_Latin1_General_CP1_CI_AS MSSQL_COLLATION: SQL_Latin1_General_CP1_CI_AS
ports: ports:
- "${MSSQL_PORT}:${MSSQL_PORT}" - "${MSSQL_PORT}:${MSSQL_PORT}"
volumes: volumes:
- sql_data:/var/opt/mssql - sql_data:/var/opt/mssql
networks: networks:
- shop-network - shop-network
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"
# MongoDB # MongoDB
# https://hub.docker.com/_/mongo/
shop-mongo-server: shop-mongo-server:
image: mongo:latest image: mongo:latest
container_name: shop-mongo-server restart: unless-stopped
ports: ports:
- "${MONGO_PORT}:${MONGO_PORT}" - "${MONGO_PORT}:${MONGO_PORT}"
volumes:
- mongo_data:/data/db
networks: networks:
- shop-network - shop-network
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"
# Redis Cache # Redis Cache
# https://hub.docker.com/_/redis/
shop-redis-server: shop-redis-server:
image: redis:latest image: redis:latest
container_name: shop-redis-server restart: unless-stopped
command: redis-server --requirepass ${REDIS_PASSWORD} command: redis-server --requirepass ${REDIS_PASSWORD}
ports: ports:
- "${REDIS_PORT}:${REDIS_PORT}" - "${REDIS_PORT}:${REDIS_PORT}"
networks:
- shop-network
volumes: volumes:
- redis_data:/data - redis_data:/data
networks:
- shop-network
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"
# Shop API Container (NET Core) # Shop API Container (NET Core)
shop-api: shop-api:
image: shop-api:latest
container_name: shop-api
build: build:
context: . context: .
dockerfile: src/Shop.PublicApi/Dockerfile dockerfile: src/Shop.PublicApi/Dockerfile
image: shop-api:latest
restart: on-failure
env_file: env_file:
- ./.env - ./.env
environment: environment:
- ASPNETCORE_ENVIRONMENT=Development ASPNETCORE_ENVIRONMENT: Development
- ConnectionStrings__SqlConnection=Server=shop-sql-server,${MSSQL_PORT};Database=ShopContext;User Id=sa;Password=${MSSQL_SA_PASSWORD};TrustServerCertificate=True; # Use portas internas dos serviços (os mapeamentos host:container ficam acima)
- ConnectionStrings__NoSqlConnection=mongodb://shop-mongo-server:${MONGO_PORT} ConnectionStrings__SqlConnection: "Server=shop-sql-server,1433;Database=ShopContext;User Id=sa;Password=${MSSQL_SA_PASSWORD};TrustServerCertificate=True;"
- ConnectionStrings__CacheConnection=shop-redis-server:${REDIS_PORT},password=${REDIS_PASSWORD},abortConnect=false ConnectionStrings__NoSqlConnection: "mongodb://shop-mongo-server:27017"
ConnectionStrings__CacheConnection: "shop-redis-server:6379,password=${REDIS_PASSWORD},abortConnect=false"
ports: ports:
- "5000:80" - "5000:80"
depends_on: depends_on:
@@ -61,11 +76,16 @@ services:
- shop-redis-server - shop-redis-server
networks: networks:
- shop-network - shop-network
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"
# Define volumes for persistent storage
volumes: volumes:
sql_data: sql_data:
redis_data: redis_data:
mongo_data:
networks: networks:
shop-network: shop-network: