version: "3.5" x-shared-config: base: &base command: /bin/bash image: opentelemetry/opentelemetry-ruby stdin_open: true tmpfs: - /tmp tty: true user: "1000:1000" volumes: - .:/app:cached - bundle:/bundle services: api: <<: *base working_dir: /app/api app: <<: *base build: context: . working_dir: /app ex-instrumentation-bunny: <<: *base depends_on: - rabbitmq environment: - RABBITMQ_URL=amqp://guest:guest@rabbitmq:5672 working_dir: /app/instrumentation/bunny/example ex-instrumentation-concurrent-ruby: <<: *base working_dir: /app/instrumentation/concurrent_ruby/example ex-instrumentation-delayed_job: <<: *base working_dir: /app/instrumentation/delayed_job/example ex-instrumentation-ethon: <<: *base working_dir: /app/instrumentation/ethon/example ex-instrumentation-excon: <<: *base working_dir: /app/instrumentation/excon/example ex-instrumentation-faraday: <<: *base working_dir: /app/instrumentation/faraday/example ex-instrumentation-mysql2: <<: *base environment: - TEST_MYSQL_USER=root - TEST_MYSQL_ROOT_PASSWORD=root - TEST_MYSQL_HOST=mysql - TEST_MYSQL_PORT=3306 - TEST_MYSQ_DB=mysql depends_on: - mysql working_dir: /app/instrumentation/mysql2/example ex-instrumentation-mysql2-test: <<: *base environment: - TEST_MYSQL_USER=root - TEST_MYSQL_ROOT_PASSWORD=root - TEST_MYSQL_HOST=mysql - TEST_MYSQL_PORT=3306 - TEST_MYSQ_DB=mysql depends_on: - mysql working_dir: /app/instrumentation/mysql2/ ex-instrumentation-pg: <<: *base environment: - TEST_POSTGRES_PASSWORD=postgres - TEST_POSTGRES_USER=postgres - TEST_POSTGRES_HOST=postgres - TEST_POSTGRES_PORT=5432 - TEST_POSTGRES_DB=postgres - OTEL_TRACES_EXPORTER=console depends_on: - postgres working_dir: /app/instrumentation/pg/example ex-instrumentation-pg-test: <<: *base environment: - TEST_POSTGRES_PASSWORD=postgres - TEST_POSTGRES_USER=postgres - TEST_POSTGRES_HOST=postgres - TEST_POSTGRES_PORT=5432 - TEST_POSTGRES_DB=postgres depends_on: - postgres working_dir: /app/instrumentation/pg/ ex-instrumentation-net-http: <<: *base working_dir: /app/instrumentation/net_http/example ex-instrumentation-que: <<: *base environment: - TEST_POSTGRES_PASSWORD=postgres - TEST_POSTGRES_USER=postgres - TEST_POSTGRES_HOST=postgres - TEST_POSTGRES_PORT=5432 - TEST_POSTGRES_DB=postgres depends_on: - postgres working_dir: /app/instrumentation/que ex-instrumentation-rack: <<: *base working_dir: /app/instrumentation/rack/example ex-instrumentation-dalli: <<: *base environment: - MEMCACHED_URL=memcached:11211 depends_on: - memcached working_dir: /app/instrumentation/dalli/example ex-instrumentation-restclient: <<: *base working_dir: /app/instrumentation/restclient/example ex-instrumentation-sinatra: <<: *base command: ./start_server.sh working_dir: /app/instrumentation/sinatra/example mongo: image: mongo:4.4 expose: - "27017" ports: - "27017:27017" mysql: image: mysql:5.6 environment: - MYSQL_DATABASE=mysql - MYSQL_ROOT_PASSWORD=root - MYSQL_PASSWORD=mysql - MYSQL_USER=mysql expose: - "3306" ports: - "3306:3306" postgres: image: postgres:13 environment: - POSTGRES_PASSWORD=postgres expose: - "5432" ports: - "5432:5432" redis: image: redis:5.0-alpine volumes: - redis_data:/data rabbitmq: image: rabbitmq:3.8-alpine ports: - "5672:5672" memcached: image: memcached:alpine command: memcached -m 64 zookeeper: image: confluentinc/cp-zookeeper:latest ports: - 2181:2181 environment: ZOOKEEPER_CLIENT_PORT: 2181 ZOOKEEPER_TICK_TIME: 2000 kafka: image: confluentinc/cp-kafka:latest ports: - "9092:9092" - "29092:29092" environment: KAFKA_BROKER_ID: 1 KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181 KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://localhost:29092,PLAINTEXT_HOST://kafka:9092 KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT KAFKA_INTER_BROKER_LISTENER_NAME: PLAINTEXT KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1 depends_on: - zookeeper sdk: <<: *base working_dir: /app/sdk volumes: bundle: redis_data: