Files
merica/docker-compose.yml
T

73 lines
3.4 KiB
YAML
Raw Normal View History

# ==============================================================================
# MERICA STANDALONE APPLIANCE — DOCKER COMPOSE CONFIGURATION
# ==============================================================================
# Clean, ultra-lightweight standalone container running strictly MERICA:
# - Unified Nginx Reverse Proxy + ReactFlow Canvas UI + FastAPI Modular Backend
# - Port: 14000 (Internal loopback 127.0.0.1:8000)
# - Zero Airflow containers inside (Connects to your External Airflow cluster)
# - Zero PostgreSQL MetaDB inside (Connects to your External Lakehouse DB)
# - Pre-seeded Starter Pipelines mounted to guarantee DAGs list appears instantly
# ==============================================================================
services:
merica:
build: .
image: ${MERICA_IMAGE:-registry.sicabe.com/merica:1.0.0}
container_name: merica-appliance
restart: always
ports:
- "${MERICA_PORT:-14000}:80"
extra_hosts:
- "host.docker.internal:host-gateway"
environment:
# 1. External Apache Airflow Connectivity
- AIRFLOW_WEB_URL=${AIRFLOW_WEB_URL:-http://host.docker.internal:14080}
- AIRFLOW_API_URL=${AIRFLOW_API_URL:-http://host.docker.internal:14080}
# 2. Pipeline SSOT Directories (Mounted Starter / Git Repository)
- AIRFLOW_CONFIGS_DIR=/app/merica-pipelines/configs
- AIRFLOW_METADATA_DIR=/app/merica-pipelines/metadata
- AIRFLOW_DBT_DIR=/app/merica-pipelines/dbt
# 3. External PostgreSQL Database (Introspection & Airflow MetaDB)
- POSTGRES_HOST=${POSTGRES_HOST:-host.docker.internal}
- POSTGRES_PORT=${POSTGRES_PORT:-14432}
- POSTGRES_DB=${POSTGRES_DB:-dlh_lakehouse}
- POSTGRES_USER=${POSTGRES_USER:-dlh_user}
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD:-dlh_password}
# 4. Storage & MinIO S3 Lakehouse (Optional External)
- MINIO_ENDPOINT=${MINIO_ENDPOINT:-host.docker.internal:14096}
- MINIO_ROOT_USER=${MINIO_ROOT_USER:-minio_admin}
- MINIO_ROOT_PASSWORD=${MINIO_ROOT_PASSWORD:-minio_password}
# 5. Security & Authentication
- SECRET_KEY=${SECRET_KEY:-merica-secret-key-dlh-12345678901234567890123456789012}
- MERICA_ADMIN_USERNAME=${MERICA_ADMIN_USERNAME:-admin}
- MERICA_ADMIN_PASSWORD=${MERICA_ADMIN_PASSWORD:-admin}
# 6. External Keycloak IAM & SSO (Optional)
- KEYCLOAK_URL=${KEYCLOAK_URL:-http://host.docker.internal:14180}
- KEYCLOAK_REALM=${KEYCLOAK_REALM:-merica}
- KEYCLOAK_CLIENT_ID=${KEYCLOAK_CLIENT_ID:-merica-app}
# 7. Metadata Governance (Optional OpenMetadata)
- OPENMETADATA_HOST=${OPENMETADATA_HOST:-http://host.docker.internal:14585}
- OPENMETADATA_JWT_TOKEN=${OPENMETADATA_JWT_TOKEN:-}
- ENABLE_OPENMETADATA_SYNC=${ENABLE_OPENMETADATA_SYNC:-false}
- GOVERNANCE_DOMAIN=${GOVERNANCE_DOMAIN:-Lingkungan Hidup & Kehutanan}
- GOVERNANCE_OWNER_TEAM=${GOVERNANCE_OWNER_TEAM:-de_team_dlh}
- GOVERNANCE_OWNER_NAME=${GOVERNANCE_OWNER_NAME:-Data Engineering DLH}
- GOVERNANCE_TIER=${GOVERNANCE_TIER:-Tier.Tier1}
- GOVERNANCE_CERTIFICATION=${GOVERNANCE_CERTIFICATION:-Certification.Gold}
volumes:
# PENTING: Mount folder pipeline starter / Git SSOT agar DAGs list langsung muncul
- ${PIPELINES_DIR:-./pipelines}:/app/merica-pipelines
- merica_storage:/app/storage
- merica_data:/app/data
volumes:
merica_storage:
merica_data: