87 lines
2.4 KiB
YAML
87 lines
2.4 KiB
YAML
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
|