147 lines
3.0 KiB
Plaintext
147 lines
3.0 KiB
Plaintext
services:
|
|
api:
|
|
image: honcho:latest
|
|
build:
|
|
context: .
|
|
dockerfile: Dockerfile
|
|
depends_on:
|
|
database:
|
|
condition: service_healthy
|
|
ports:
|
|
- 8000:8000
|
|
volumes:
|
|
- .:/app
|
|
- venv:/app/.venv
|
|
env_file:
|
|
- .env
|
|
deriver:
|
|
build:
|
|
context: .
|
|
dockerfile: Dockerfile
|
|
entrypoint: ["uv", "run", "python", "-m", "src.deriver"]
|
|
depends_on:
|
|
database:
|
|
condition: service_healthy
|
|
volumes:
|
|
- .:/app
|
|
- venv:/app/.venv
|
|
env_file:
|
|
- .env
|
|
database:
|
|
image: pgvector/pgvector:pg15
|
|
restart: always
|
|
ports:
|
|
- 5432:5432
|
|
command: ["postgres", "-c", "max_connections=800"]
|
|
environment:
|
|
- POSTGRES_DB=honcho
|
|
- POSTGRES_USER=testuser
|
|
- POSTGRES_PASSWORD=testpwd
|
|
- POSTGRES_HOST_AUTH_METHOD=trust
|
|
- PGDATA=/var/lib/postgresql/data/pgdata
|
|
volumes:
|
|
- ./database/init.sql:/docker-entrypoint-initdb.d/init.sql
|
|
- pgdata:/var/lib/postgresql/data/
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "pg_isready -U testuser -d honcho"]
|
|
interval: 5s
|
|
timeout: 5s
|
|
retries: 5
|
|
redis:
|
|
image: redis:8.2
|
|
restart: always
|
|
ports:
|
|
- 6379:6379
|
|
volumes:
|
|
- ./redis-data:/data
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "redis-cli ping"]
|
|
interval: 5s
|
|
timeout: 5s
|
|
retries: 5
|
|
mimir:
|
|
image: grafana/mimir:2.14.0
|
|
command:
|
|
- -config.file=/etc/mimir/mimir.yaml
|
|
ports:
|
|
- 9009:9009
|
|
volumes:
|
|
- ./mimir-data:/data
|
|
configs:
|
|
- source: mimir_config
|
|
target: /etc/mimir/mimir.yaml
|
|
grafana:
|
|
image: grafana/grafana:11.4.0
|
|
ports:
|
|
- 3000:3000
|
|
environment:
|
|
- GF_SECURITY_ADMIN_USER=admin
|
|
- GF_SECURITY_ADMIN_PASSWORD=admin
|
|
- GF_AUTH_ANONYMOUS_ENABLED=true
|
|
- GF_AUTH_ANONYMOUS_ORG_ROLE=Viewer
|
|
volumes:
|
|
- ./grafana-data:/var/lib/grafana
|
|
depends_on:
|
|
- mimir
|
|
|
|
volumes:
|
|
pgdata:
|
|
venv:
|
|
|
|
configs:
|
|
mimir_config:
|
|
content: |
|
|
multitenancy_enabled: false
|
|
|
|
server:
|
|
http_listen_port: 9009
|
|
log_level: warn
|
|
|
|
common:
|
|
storage:
|
|
backend: filesystem
|
|
filesystem:
|
|
dir: /data
|
|
|
|
blocks_storage:
|
|
backend: filesystem
|
|
filesystem:
|
|
dir: /data/blocks
|
|
bucket_store:
|
|
sync_dir: /data/tsdb-sync
|
|
tsdb:
|
|
dir: /data/tsdb
|
|
|
|
compactor:
|
|
data_dir: /data/compactor
|
|
sharding_ring:
|
|
kvstore:
|
|
store: memberlist
|
|
|
|
distributor:
|
|
ring:
|
|
instance_addr: 127.0.0.1
|
|
kvstore:
|
|
store: memberlist
|
|
|
|
ingester:
|
|
ring:
|
|
instance_addr: 127.0.0.1
|
|
kvstore:
|
|
store: memberlist
|
|
replication_factor: 1
|
|
|
|
ruler_storage:
|
|
backend: filesystem
|
|
filesystem:
|
|
dir: /data/rules
|
|
|
|
alertmanager_storage:
|
|
backend: filesystem
|
|
filesystem:
|
|
dir: /data/alertmanager
|
|
|
|
store_gateway:
|
|
sharding_ring:
|
|
replication_factor: 1
|