diff --git a/docker-compose.yml b/docker-compose.yml index 3146722..fa4c0bf 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,58 +1,73 @@ services: # Microsoft SQL Server - # https://hub.docker.com/r/microsoft/mssql-server/ shop-sql-server: image: mcr.microsoft.com/mssql/server:2022-latest - container_name: shop-sql-server + restart: unless-stopped environment: - - ACCEPT_EULA=Y - - MSSQL_SA_PASSWORD=${MSSQL_SA_PASSWORD} - - MSSQL_PID=Express - - MSSQL_COLLATION=SQL_Latin1_General_CP1_CI_AS + 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 - container_name: shop-mongo-server + 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 - container_name: shop-redis-server + restart: unless-stopped command: redis-server --requirepass ${REDIS_PASSWORD} ports: - "${REDIS_PORT}:${REDIS_PORT}" - networks: - - shop-network 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: - image: shop-api:latest - container_name: shop-api build: context: . dockerfile: src/Shop.PublicApi/Dockerfile + image: shop-api:latest + restart: on-failure env_file: - ./.env environment: - - ASPNETCORE_ENVIRONMENT=Development - - ConnectionStrings__SqlConnection=Server=shop-sql-server,${MSSQL_PORT};Database=ShopContext;User Id=sa;Password=${MSSQL_SA_PASSWORD};TrustServerCertificate=True; - - ConnectionStrings__NoSqlConnection=mongodb://shop-mongo-server:${MONGO_PORT} - - ConnectionStrings__CacheConnection=shop-redis-server:${REDIS_PORT},password=${REDIS_PASSWORD},abortConnect=false + ASPNETCORE_ENVIRONMENT: Development + # Use portas internas dos serviços (os mapeamentos host:container ficam acima) + 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: @@ -61,11 +76,16 @@ services: - shop-redis-server networks: - shop-network + logging: + driver: "json-file" + options: + max-size: "10m" + max-file: "3" -# Define volumes for persistent storage volumes: sql_data: redis_data: + mongo_data: networks: shop-network: