services:
postgres:
image: postgres:16
environment:
POSTGRES_USER: rivet
POSTGRES_PASSWORD: rivet
POSTGRES_DB: rivet
ports:
- "5432:5432"
volumes:
- ./dev/postgres/init.sql:/docker-entrypoint-initdb.d/init.sql
healthcheck:
test: ["CMD-SHELL", "pg_isready -U rivet"]
interval: 5s
timeout: 3s
retries: 10
mysql:
image: mysql:8.0
environment:
MYSQL_ROOT_PASSWORD: rivet
MYSQL_USER: rivet
MYSQL_PASSWORD: rivet
MYSQL_DATABASE: rivet
ports:
- "3306:3306"
volumes:
- ./dev/mysql/init.sql:/docker-entrypoint-initdb.d/init.sql
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-uroot", "-privet"]
interval: 5s
timeout: 3s
retries: 10
minio:
image: minio/minio:latest
command: server /data --console-address ":9001"
environment:
MINIO_ROOT_USER: minioadmin
MINIO_ROOT_PASSWORD: minioadmin
ports:
- "9000:9000"
- "9001:9001"
fake-gcs:
image: fsouza/fake-gcs-server:latest
ports:
- "4443:4443"
command:
- "-scheme"
- "http"
- "-host"
- "0.0.0.0"
- "-port"
- "4443"
postgres-exporter:
image: prometheuscommunity/postgres-exporter:latest
environment:
DATA_SOURCE_NAME: "postgresql://rivet:rivet@postgres:5432/rivet?sslmode=disable"
ports:
- "9187:9187"
depends_on:
- postgres
prometheus:
image: prom/prometheus:latest
volumes:
- ./dev/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml:ro
ports:
- "9090:9090"
depends_on:
- postgres-exporter
grafana:
image: grafana/grafana:latest
environment:
GF_SECURITY_ADMIN_USER: admin
GF_SECURITY_ADMIN_PASSWORD: admin
GF_AUTH_ANONYMOUS_ENABLED: "true"
GF_AUTH_ANONYMOUS_ORG_ROLE: Viewer
volumes:
- ./dev/grafana/provisioning:/etc/grafana/provisioning:ro
- ./dev/grafana/dashboards:/var/lib/grafana/dashboards:ro
ports:
- "3000:3000"
depends_on:
- prometheus
toxiproxy:
image: ghcr.io/shopify/toxiproxy:latest
ports:
- "8474:8474" - "15432:15432" - "13306:13306" depends_on:
- postgres
- mysql