# Production Docker Compose for Silo # Uses external PostgreSQL (psql.example.internal) and filesystem storage # # Usage: # export SILO_DB_PASSWORD= # docker compose -f docker-compose.prod.yaml up -d services: silo: build: context: .. dockerfile: build/package/Dockerfile container_name: silod restart: unless-stopped environment: # Database connection (psql.example.internal) # Supported as direct env var overrides in the Go config loader: SILO_DB_HOST: psql.example.internal SILO_DB_NAME: silo SILO_DB_USER: silo SILO_DB_PASSWORD: ${SILO_DB_PASSWORD:?Database password required} # Note: SILO_DB_PORT and SILO_DB_SSLMODE are NOT supported as direct # env var overrides. Set these in config.yaml instead, or use ${VAR} # syntax in the YAML file. See docs/CONFIGURATION.md for details. ports: - "8080:8080" volumes: - ../schemas:/etc/silo/schemas:ro - ./config.prod.yaml:/etc/silo/config.yaml:ro healthcheck: test: ["CMD", "wget", "-qO-", "http://localhost:8080/health"] interval: 30s timeout: 5s retries: 3 start_period: 10s logging: driver: "json-file" options: max-size: "10m" max-file: "3"