version: '3.8' services: # PostgreSQL Database postgres: image: postgres:15-alpine container_name: go-microservices-db environment: POSTGRES_DB: ${POSTGRES_DB:-microservices_db} POSTGRES_USER: ${POSTGRES_USER:-postgres} POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-postgres} ports: - "${BLUEPRINT_DB_PORT:-5432}:5432" volumes: - postgres_data:/var/lib/postgresql/data networks: - microservices-network # Auth Service auth-service: build: context: . dockerfile: ./services/auth-service/Dockerfile container_name: auth-service ports: - "50051:50051" environment: - DATABASE_URL=postgres://${POSTGRES_USER:-postgres}:${POSTGRES_PASSWORD:-postgres}@postgres:${BLUEPRINT_DB_PORT:-5432}/${POSTGRES_DB:-microservices_db}?sslmode=disable - JWT_SECRET=${JWT_SECRET:-your-development-jwt-secret-change-in-production} depends_on: - postgres networks: - microservices-network restart: unless-stopped # User Service user-service: build: context: . dockerfile: ./services/user-service/Dockerfile container_name: user-service ports: - "50052:50052" environment: - DATABASE_URL=postgres://${POSTGRES_USER:-postgres}:${POSTGRES_PASSWORD:-postgres}@postgres:${BLUEPRINT_DB_PORT:-5432}/${POSTGRES_DB:-microservices_db}?sslmode=disable networks: - microservices-network restart: unless-stopped # Post Service post-service: build: context: . dockerfile: ./services/post-service/Dockerfile container_name: post-service ports: - "50053:50053" environment: - DATABASE_URL=postgres://${POSTGRES_USER:-postgres}:${POSTGRES_PASSWORD:-postgres}@postgres:${BLUEPRINT_DB_PORT:-5432}/${POSTGRES_DB:-microservices_db}?sslmode=disable networks: - microservices-network restart: unless-stopped # API Gateway api-gateway: build: context: . dockerfile: ./api-gateway/Dockerfile container_name: api-gateway ports: - "8080:8080" environment: - AUTH_SERVICE_GRPC=auth-service:50051 - JWT_SECRET=${JWT_SECRET:-your-development-jwt-secret-change-in-production} depends_on: - auth-service networks: - microservices-network restart: unless-stopped volumes: postgres_data: networks: microservices-network: driver: bridge