Files
meta_api_grabber/docker-compose.yml

68 lines
1.8 KiB
YAML

version: '3.8'
services:
timescaledb:
image: timescale/timescaledb:latest-pg16
container_name: meta_timescaledb
ports:
- "5555:5432"
environment:
POSTGRES_DB: meta_insights
POSTGRES_USER: meta_user
POSTGRES_PASSWORD: meta_password
volumes:
- timescale_data:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U meta_user -d meta_insights"]
interval: 10s
timeout: 5s
retries: 5
restart: unless-stopped
# View Manager - Setup database schema and views
view-manager:
build:
context: .
dockerfile: Dockerfile
container_name: view_manager
environment:
# Database connection (connects to timescaledb service)
DATABASE_URL: postgresql://meta_user:meta_password@timescaledb:5432/meta_insights
env_file:
- .env # Optional: for any additional configuration
volumes:
# Mount metadata.yaml for account configuration
- ./metadata.yaml:/app/metadata.yaml:ro
# Optional: Mount custom db_schema.sql if you want to edit it externally
# - ./src/meta_api_grabber/db_schema.sql:/app/src/meta_api_grabber/db_schema.sql:ro
depends_on:
timescaledb:
condition: service_healthy
restart: unless-stopped
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"
# Optional: Grafana for visualization
grafana:
image: grafana/grafana:latest
container_name: meta_grafana
ports:
- "3555:3000"
environment:
GF_SECURITY_ADMIN_USER: admin
GF_SECURITY_ADMIN_PASSWORD: admin
GF_INSTALL_PLUGINS: grafana-clock-panel
volumes:
- grafana_data:/var/lib/grafana
depends_on:
timescaledb:
condition: service_healthy
restart: unless-stopped
volumes:
timescale_data:
grafana_data: