# Docker Compose - Student Enrollment System # Optimizado para bajo consumo de RAM # Usa archivo .env en la raíz del proyecto para configuración services: db: image: andresgarcia0313/mssql-express-lowram:latest container_name: student-db env_file: - ../../.env environment: - MSSQL_SA_PASSWORD=${DB_PASSWORD:-Asde71.4Asde71.4} - MSSQL_PID=Express - MSSQL_MEMORY_LIMIT_MB=340 ports: - "${DB_PORT:-1433}:1433" volumes: - sqlserver-data:/var/opt/mssql/data:delegated mem_limit: 384m memswap_limit: 4g mem_reservation: 256m healthcheck: test: /opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P "$${MSSQL_SA_PASSWORD}" -Q "SELECT 1" || exit 1 interval: 30s timeout: 10s retries: 5 start_period: 30s networks: - student-network restart: unless-stopped api: build: context: ../.. dockerfile: deploy/docker/Dockerfile.api args: - DOTNET_CLI_TELEMETRY_OPTOUT=1 container_name: student-api env_file: - ../../.env environment: - DB_HOST=db - DB_PORT=1433 - ConnectionStrings__DefaultConnection=Server=db;Database=${DB_NAME:-StudentEnrollment};User Id=${DB_USER:-sa};Password=${DB_PASSWORD};TrustServerCertificate=True;Max Pool Size=50;Min Pool Size=2 - ASPNETCORE_ENVIRONMENT=${ASPNETCORE_ENVIRONMENT:-Development} - CORS_ORIGINS=${CORS_ORIGINS:-http://localhost:8080,http://localhost:4200} - DOTNET_gcServer=0 - DOTNET_GCHeapCount=2 - DOTNET_gcConcurrent=1 ports: - "${API_PORT:-5000}:5000" deploy: resources: limits: cpus: "2" memory: 512M reservations: cpus: "0.5" memory: 256M depends_on: db: condition: service_healthy healthcheck: test: ["CMD", "curl", "-f", "http://localhost:5000/health"] interval: 15s timeout: 5s retries: 5 start_period: 30s networks: - student-network restart: unless-stopped frontend: build: context: ../.. dockerfile: deploy/docker/Dockerfile.frontend container_name: student-frontend ports: - "${FRONTEND_PORT:-8080}:80" deploy: resources: limits: cpus: "1" memory: 128M reservations: cpus: "0.25" memory: 64M depends_on: api: condition: service_healthy networks: - student-network restart: unless-stopped volumes: sqlserver-data: driver: local networks: student-network: driver: bridge