playground/docker-compose.yaml

133 lines
3.4 KiB
YAML

version: '3.8'
services:
demo:
image: ghcr.io/open-feature/playground-app:v0.14.0 # x-release-please-version
# build:
# dockerfile: ./packages/app/Dockerfile
# context: .
ports:
- '30000:30000'
command:
# The default provider
- flagd
depends_on:
- flagd
- jaeger
- fib-service
volumes:
- ./config/flagd/flags.json:/opt/playground/config/flagd/flags.json
environment:
- FLAGD_HOST=flagd
- OTEL_EXPORTER_JAEGER_AGENT_HOST=jaeger
- OTEL_EXPORTER_JAEGER_AGENT_PORT=6832
- GO_FEATURE_FLAG_URL=http://go-feature-flag:1031
- FIB_SERVICE_URL=http://fib-service:30001
- FIB_SERVICE_USER
- FIB_SERVICE_PASS
# Provider values come from the .env
- NEW_WELCOME_MESSAGE
- FIB_ALGO
- HEX_COLOR
# Feature Flag Vendor Keys come from the .env
## Server
- HARNESS_KEY
- SPLIT_KEY
- LD_KEY
- FLAGSMITH_ENV_KEY
- CLOUDBEES_APP_KEY
## Web
- HARNESS_KEY_WEB
- SPLIT_KEY_WEB
- LD_KEY_WEB
- FLAGSMITH_ENV_KEY_WEB
- CLOUDBEES_APP_KEY_WEB
- FLAGD_HOST_WEB
- FLAGD_PORT_WEB
- FLAGD_TLS_WEB
fib-service:
image: ghcr.io/open-feature/playground-fib-service:v0.14.0 # x-release-please-version
# build:
# dockerfile: ./packages/fibonacci-service/Dockerfile
# context: .
expose:
- '30001'
environment:
- FLAGD_HOST=flagd
- OTEL_EXPORTER_JAEGER_AGENT_HOST=jaeger
- OTEL_EXPORTER_JAEGER_AGENT_PORT=6832
- OTEL_SERVICE_NAME=fibonacci-service
- GO_FEATURE_FLAG_URL=http://go-feature-flag:1031
- FIB_SERVICE_USER
- FIB_SERVICE_PASS
# Provider values come from the .env
- NEW_WELCOME_MESSAGE
- FIB_ALGO
- HEX_COLOR
# Feature Flag Vendor Keys come from the .env
- HARNESS_KEY
- SPLIT_KEY
- LD_KEY
- FLAGSMITH_ENV_KEY
- CLOUDBEES_APP_KEY
jaeger:
image: jaegertracing/all-in-one:1.56
expose:
- '6832/udp'
- '4317'
ports:
- '16686:16686'
otel-collector:
image: otel/opentelemetry-collector-contrib:0.98.0
restart: always
command: [ "--config=/etc/otel-collector-config.yaml" ]
volumes:
- ./config/otel/collector.yaml:/etc/otel-collector-config.yaml
expose:
- "1888" # pprof extension
- "8888" # Prometheus metrics exposed by the collector
- "8889" # Prometheus exporter metrics
- "4317" # OTLP gRPC receiver
depends_on:
- jaeger
- prometheus
prometheus:
container_name: prometheus
image: prom/prometheus:v2.51.1
restart: always
volumes:
- ./config/prometheus/prometheus.yaml:/etc/prometheus/prometheus.yml
ports:
- "9090:9090"
flagd:
image: ghcr.io/open-feature/flagd:v0.10.0
command:
- start
- --cors-origin
- '*'
- --sources
- '[{"uri":"etc/flagd/flags.json","provider":"file","selector":"etc/flagd/flags.json"}]'
- --metrics-exporter
- otel
- --otel-collector-uri
- otel-collector:4317
volumes:
- ./config/flagd/flags.json:/etc/flagd/flags.json
ports:
- '8013:8013'
- '8016:8016'
go-feature-flag:
image: thomaspoignant/go-feature-flag:v1.25.1
volumes:
- ./config/go-feature-flag:/goff/
ports:
- "1031:1031"
volumes:
flagd-flags: