services:
etcd:
image: quay.io/coreos/etcd:v3.5.15
command:
- /usr/local/bin/etcd
- --advertise-client-urls=http://0.0.0.0:2379
- --listen-client-urls=http://0.0.0.0:2379
ports:
- "${RS_ZERO_EXTERNAL_ETCD_PORT:-12379}:2379"
healthcheck:
test: ["CMD", "etcdctl", "--endpoints=http://127.0.0.1:2379", "endpoint", "health"]
interval: 2s
timeout: 3s
retries: 30
redis:
image: redis:7-alpine
ports:
- "${RS_ZERO_EXTERNAL_REDIS_PORT:-16379}:6379"
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 2s
timeout: 3s
retries: 30
otel-collector:
image: otel/opentelemetry-collector:0.104.0
command: ["--config=/etc/otelcol/config.yml"]
volumes:
- ./otel-collector-config.yml:/etc/otelcol/config.yml:ro
ports:
- "${RS_ZERO_EXTERNAL_OTLP_GRPC_PORT:-14317}:4317"
- "${RS_ZERO_EXTERNAL_OTLP_HTTP_PORT:-14318}:4318"
- "${RS_ZERO_EXTERNAL_OTLP_HEALTH_PORT:-13133}:13133"
healthcheck:
test: ["CMD", "/otelcol", "--version"]
interval: 2s
timeout: 3s
retries: 30
pyroscope:
image: grafana/pyroscope:1.14.0
command: ["server"]
ports:
- "${RS_ZERO_EXTERNAL_PYROSCOPE_PORT:-14040}:4040"
healthcheck:
test: ["CMD", "/usr/bin/pyroscope", "--version"]
interval: 2s
timeout: 3s
retries: 60
mysql:
image: mysql:8.4
environment:
MYSQL_DATABASE: rs_zero
MYSQL_USER: rs_zero
MYSQL_PASSWORD: rs_zero
MYSQL_ROOT_PASSWORD: rs_zero_root
ports:
- "${RS_ZERO_EXTERNAL_MYSQL_PORT:-13306}:3306"
healthcheck:
test: ["CMD-SHELL", "mysqladmin ping -h 127.0.0.1 -urs_zero -prs_zero --silent"]
interval: 3s
timeout: 5s
retries: 60
postgres:
image: postgres:16-alpine
environment:
POSTGRES_DB: rs_zero
POSTGRES_USER: rs_zero
POSTGRES_PASSWORD: rs_zero
ports:
- "${RS_ZERO_EXTERNAL_POSTGRES_PORT:-15432}:5432"
healthcheck:
test: ["CMD-SHELL", "pg_isready -U rs_zero -d rs_zero -h 127.0.0.1"]
interval: 2s
timeout: 3s
retries: 60