# Development docker-compose: Only infrastructure services (PostgreSQL and Consul)
# Use this for local development when running services directly with `go run`

services:
  postgres:
    image: postgres:16-alpine
    container_name: goplt-postgres
    environment:
      POSTGRES_USER: goplt
      POSTGRES_PASSWORD: goplt_password
      POSTGRES_DB: goplt
    ports:
      - "5432:5432"
    volumes:
      - postgres_data:/var/lib/postgresql/data
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U goplt"]
      interval: 5s
      timeout: 5s
      retries: 5
    networks:
      - goplt-network

  consul:
    image: consul:latest
    container_name: goplt-consul
    command: consul agent -dev -client=0.0.0.0
    ports:
      - "8500:8500"
    volumes:
      - consul_data:/consul/data
    healthcheck:
      test: ["CMD-SHELL", "consul members"]
      interval: 10s
      timeout: 3s
      retries: 5
    networks:
      - goplt-network

volumes:
  postgres_data:
    driver: local
  consul_data:
    driver: local

networks:
  goplt-network:
    driver: bridge

