docker-compose.yml•1.64 kB
version: '3.8'
services:
# PostgreSQL Database
postgres:
image: postgres:16-alpine
container_name: crew-mcp-db
environment:
POSTGRES_DB: aircraft_db
POSTGRES_USER: srihaanbandu
POSTGRES_PASSWORD: changeme
POSTGRES_INITDB_ARGS: "--encoding=UTF8"
volumes:
- postgres_data:/var/lib/postgresql/data
- ./database/schema.sql:/docker-entrypoint-initdb.d/01-schema.sql
- ./database/seed-data.sql:/docker-entrypoint-initdb.d/02-seed-data.sql
ports:
- "5432:5432"
healthcheck:
test: ["CMD-SHELL", "pg_isready -U srihaanbandu -d aircraft_db"]
interval: 10s
timeout: 5s
retries: 5
networks:
- crew-mcp-network
# Crew MCP Server
crew-mcp:
build:
context: .
dockerfile: Dockerfile
container_name: crew-mcp-server
depends_on:
postgres:
condition: service_healthy
environment:
# Database
POSTGRES_URL: postgresql://srihaanbandu:changeme@postgres:5432/aircraft_db
# Server
NODE_ENV: production
LOG_LEVEL: info
# MCP
MCP_SERVER_NAME: crew-qualifications-mcp
MCP_SERVER_VERSION: 1.0.0
# Features
ENABLE_NEO4J: "false"
ENABLE_FAA_PART_117: "true"
# LLM
LLM_MODE: ollama
# Timezone
TZ: America/Los_Angeles
TIMEZONE: America/Los_Angeles
volumes:
# Mount for logs (optional)
- ./logs:/app/logs
networks:
- crew-mcp-network
restart: unless-stopped
stdin_open: true
tty: true
volumes:
postgres_data:
driver: local
networks:
crew-mcp-network:
driver: bridge