services:
aerospike:
image: aerospike@sha256:f268d48f5075010ff268b29fbae28518418070dfb31935daa31f0b45c59f4da9 # ce-6.4.0.3
ports:
- "127.0.0.1:3000-3002:3000-3002"
azurite:
image: ghcr.io/datadog/dd-trace-js/mcr.microsoft.com/azure-storage/azurite@sha256:647c63a91102a9d8e8000aab803436e1fc85fbb285e7ce830a82ee5d6661cf37 # 3.35.0
ports:
- "127.0.0.1:10000:10000"
- "127.0.0.1:10001:10001"
- "127.0.0.1:10002:10002"
azurecosmosemulator:
image: ghcr.io/datadog/dd-trace-js/mcr.microsoft.com/cosmosdb/linux/azure-cosmos-emulator@sha256:bf3bd3cbe3fae2005a0745f77b01d1fc8cd04112193f3ee32289ee15ee9ae5fa # vnext-preview
ports:
- "127.0.0.1:8081:8081"
- "127.0.0.1:8080:8080"
- "127.0.0.1:1234:1234"
environment:
ACCEPT_EULA: "Y"
BLOB_SERVER: azurite
METADATA_SERVER: azurite
azureeventhubsemulator:
image: ghcr.io/datadog/dd-trace-js/mcr.microsoft.com/azure-messaging/eventhubs-emulator@sha256:25ec4141efb69933a0c82e6a787fa147a3895519e7d236d4c41ba568e03100eb # 2.1.0
volumes:
- "./packages/datadog-plugin-azure-functions/test/fixtures/eventhub-emulator-config.json:/Eventhubs_Emulator/ConfigFiles/Config.json"
ports:
- "127.0.0.1:5673:5672"
- "127.0.0.1:9092:9092"
environment:
BLOB_SERVER: azurite
METADATA_SERVER: azurite
ACCEPT_EULA: "Y"
azureservicebusemulator:
image: ghcr.io/datadog/dd-trace-js/mcr.microsoft.com/azure-messaging/servicebus-emulator@sha256:353913ece3d9124cebd40f4b91d00dd197846b8cf86eae9a4790698709c64a1d # 1.1.2
volumes:
- "./packages/datadog-plugin-azure-functions/test/fixtures/servicebus-emulator-config.json:/ServiceBus_Emulator/ConfigFiles/Config.json"
ports:
- "127.0.0.1:5672:5672"
- "127.0.0.1:5300:5300"
environment:
ACCEPT_EULA: "Y"
MSSQL_SA_PASSWORD: "Localtestpass1!"
SQL_SERVER: azuresqledge
azuresqledge:
image: ghcr.io/datadog/dd-trace-js/mcr.microsoft.com/azure-sql-edge@sha256:1dcc88d2d9e555d0addb0636648d0da033206978d7c5c4da044c904a0f06f58b # 1.0.7
platform: linux/amd64
ports:
- "127.0.0.1:1433:1433"
environment:
ACCEPT_EULA: "Y"
MSSQL_SA_PASSWORD: "Localtestpass1!"
couchbase:
image: ghcr.io/datadog/couchbase-server-sandbox@sha256:4ffbf2bc9785a9c7c6ddd7580226280a2a9f1f08c689999f5dff7958e71ad97e # latest
ports:
- "127.0.0.1:8091-8095:8091-8095"
- "127.0.0.1:11210:11210"
postgres:
image: postgres@sha256:b1d91bceef1fbbd64ea5d8afc3d257fbc4ffe23c5b3425ccc72b52f9c500fbb6 # 9.5-alpine
environment:
- POSTGRES_PASSWORD=postgres
ports:
- "127.0.0.1:5432:5432"
mssql:
# A working MSSQL server is not available on ARM.
# This image provides _most_ of sqlserver functionalities, but
# does not support stored procedures (corresponding tests will fail)
image: ghcr.io/datadog/dd-trace-js/mcr.microsoft.com/azure-sql-edge@sha256:1dcc88d2d9e555d0addb0636648d0da033206978d7c5c4da044c904a0f06f58b # 1.0.7
environment:
- "ACCEPT_EULA=Y"
- "SA_PASSWORD=DD_HUNTER2"
ports:
- "127.0.0.1:1433:1433"
mysql:
image: mariadb@sha256:22edfe1c78349f8cae88bbb5c2873b7e6c515be767c91c691308ce57445806f3 # 10.4
environment:
- MYSQL_ALLOW_EMPTY_PASSWORD=yes
- MYSQL_DATABASE=db
ports:
- "127.0.0.1:3306:3306"
redis:
image: redis@sha256:c9d92d840fd011c908f040592857c724ae6d877f2aba5c40ad963276507386b2 # 7.0-alpine
ports:
- "127.0.0.1:6379:6379"
redis-cluster:
image: grokzen/redis-cluster@sha256:f130dd8a322fc4dc595380ec94907539c341d5841de7d31e679223aec04d30f6 # 7.0.10
platform: linux/amd64
environment:
- IP=0.0.0.0
- INITIAL_PORT=7000
ports:
- "127.0.0.1:7000-7005:7000-7005"
mongo:
image: circleci/mongo@sha256:ce33f29bababa5d2775f8e945ca0ba8754b727a2251b96eb3eed501628cb7b65 # 4.4
platform: linux/amd64
command: ["--replSet", "rs0", "--bind_ip_all"]
ports:
- "127.0.0.1:27017:27017"
mongo-prisma:
image: prismagraphql/mongo-single-replica@sha256:3efd76778f3db22e167e4c5a4ceaae335bdc23a84e82dc3c8b44a39e61d93a24 # 4.4.3-bionic
platform: linux/amd64
ports:
- "127.0.0.1:27017:27017"
oracledb:
image: quillbuilduser/oracle-18-xe@sha256:c98893106a4af2294dad1eab5e7d6c31d03d14e8f0cd7ad40075dded1da4d158
ports:
- "127.0.0.1:1521:1521"
- "127.0.0.1:5500:5500"
elasticsearch:
image: elasticsearch@sha256:432f21444d8b70a4ab5fc64f9ef7112aaf0c21361948f2deb26d7a5c7333cf35 # 7.17.22
environment:
- discovery.type=single-node
- "ES_JAVA_OPTS=-Xms128m -Xmx128m"
ports:
- "127.0.0.1:9200:9200"
rabbitmq:
image: rabbitmq@sha256:ebe7ba2c73c719aaa78db416910b8a6d615cae519bbf0e26a65a76c29cd52729 # 3.6-alpine
ports:
- "127.0.0.1:5672:5672"
qpid:
image: scholzj/qpid-cpp@sha256:480142b4c1a64861f9974492d4f7ecdc3d565cd5e60e6a96d34e44f0bf47e043 # 1.38.0
command: -p 5673
environment:
- QPIDD_ADMIN_USERNAME=admin
- QPIDD_ADMIN_PASSWORD=admin
ports:
- "127.0.0.1:5673:5673"
memcached:
image: memcached@sha256:6627e971255440a1bd789ca709d8c6c767b98ad4ba0b29d49c7949ba3275cbf9 # 1.5-alpine
ports:
- "11211:11211"
cassandra:
image: cassandra@sha256:61cbfa672b254e8fc82ece6bfd434ef7a2000e39e32f8f03c9ee4700cd9973a5 # 3-focal
ports:
- "127.0.0.1:9042:9042"
limitd:
image: ghcr.io/rochdev/limitd@sha256:3315deb2a9fba6d9753b26363947992c2c7b1465aba7352b4595c76a197aaeff # latest
environment:
- BUCKET_1_NAME=user
- BUCKET_1_SIZE=10
- BUCKET_1_PER_SECOND=5
ports:
- "127.0.0.1:9231:9231"
google-cloud-pubsub:
image: ghcr.io/ridedott/pubsub-emulator@sha256:072d9ce6d89c5aa178e945c227cefdd98dc7a31ab10e027926fc7d55e70198bc # latest
ports:
- "127.0.0.1:8081:8081"
localstack:
image: localstack/localstack@sha256:e606c4421419030b12d63a59f1211f57f5b0fbf7e9ce769e6250ee62ff4f9293 # 3.0.2
ports:
- "127.0.0.1:4566:4566" # Edge
environment:
- LOCALSTACK_SERVICES=dynamodb,kinesis,s3,sqs,sns,redshift,route53,logs,serverless,lambda,stepfunctions,events
- EXTRA_CORS_ALLOWED_HEADERS=x-amz-request-id,x-amzn-requestid,x-amz-id-2
- EXTRA_CORS_EXPOSE_HEADERS=x-amz-request-id,x-amzn-requestid,x-amz-id-2
- AWS_DEFAULT_REGION=us-east-1
- FORCE_NONINTERACTIVE=true
- START_WEB=0
- DEBUG=${DEBUG-}
- DOCKER_HOST=unix:///var/run/docker.sock
volumes:
- "/var/run/docker.sock:/var/run/docker.sock"
localstack-legacy:
# we have two localstacks since upgrading localstack was causing lambda & S3 tests to fail
# To-Do: Debug localstack / lambda and localstack / S3
image: localstack/localstack@sha256:934a0d7fdab229160afa488eb2f9af2cf760d6982e14fcf86eb2c976195763b6 # 1.1.0
ports:
- "127.0.0.1:4567:4567" # Edge
environment:
- LOCALSTACK_SERVICES=dynamodb,kinesis,s3,sqs,sns,redshift,route53,logs,serverless
- EXTRA_CORS_ALLOWED_HEADERS=x-amz-request-id,x-amzn-requestid,x-amz-id-2
- EXTRA_CORS_EXPOSE_HEADERS=x-amz-request-id,x-amzn-requestid,x-amz-id-2
- AWS_DEFAULT_REGION=us-east-1
- FORCE_NONINTERACTIVE=true
- START_WEB=0
- GATEWAY_LISTEN=127.0.0.1:4567
- EDGE_PORT=4567
- EDGE_PORT_HTTP=4567
- LAMBDA_EXECUTOR=local
kafka:
platform: linux/arm64
image: apache/kafka@sha256:4ceccc577f03f51f6af8dbfda55194d0d892f4fa7913ffbded567ce3895622ed # 3.9.1
ports:
- "127.0.0.1:9092:9092"
- "127.0.0.1:9093:9093"
environment:
- KAFKA_PROCESS_ROLES=broker,controller
- KAFKA_NODE_ID=1
- KAFKA_LISTENERS=PLAINTEXT://:9092,CONTROLLER://:9093
- KAFKA_CONTROLLER_QUORUM_VOTERS=1@127.0.0.1:9093
- KAFKA_CONTROLLER_LISTENER_NAMES=CONTROLLER
- CLUSTER_ID=5L6g3nShT-eMCtK--X86sw
- KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://127.0.0.1:9092
- KAFKA_INTER_BROKER_LISTENER_NAME=PLAINTEXT
- KAFKA_LISTENER_SECURITY_PROTOCOL_MAP=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT
- KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR=1
- KAFKA_GROUP_INITIAL_REBALANCE_DELAY_MS=0
nats:
image: nats@sha256:7f430e429d0a90444b38bd40ab7812fd3afcc49a51f6b03a931f9becd5aeb280 # 2.14.1
ports:
- "127.0.0.1:4222:4222"
opensearch:
image: opensearchproject/opensearch@sha256:3a73623acf3cdd566ad7d0c6c06190a528e6b8a5d54fe1f4327258e32bd8df26 # 2
environment:
- plugins.security.disabled=true
- discovery.type=single-node
- "ES_JAVA_OPTS=-Xms128m -Xmx128m"
ports:
- "127.0.0.1:9201:9200"
openldap:
image: bitnamilegacy/openldap@sha256:687f14a22b5c74fb057a57221acdbe7b8c82e2d3619fc380db3af48ec4aa04ed # latest
ports:
- "127.0.0.1:1389:1389"
- "127.0.0.1:1636:1636"
environment:
- LDAP_ADMIN_USERNAME=admin
- LDAP_ADMIN_PASSWORD=adminpassword
- LDAP_USERS=user01,user02
- LDAP_PASSWORDS=password1,password2
testagent:
image: ghcr.io/datadog/dd-apm-test-agent/ddapm-test-agent@sha256:e83bb3b3805a88faf37ea0f957d6700d9dcf3ed8845847134699c6bb2b7d6ff7 # v1.63.0
ports:
- "127.0.0.1:9126:9126"
- "127.0.0.1:4318:4318"
environment:
- LOG_LEVEL=DEBUG
- TRACE_LANGUAGE=javascript
- ENABLED_CHECKS=trace_stall,meta_tracer_version_header,trace_count_header,trace_peer_service
- PORT=9126
- VCR_CASSETTES_DIRECTORY=/vcr-cassettes
# The test agent treats the string "false" as truthy; empty disables CI mode locally.
- VCR_CI_MODE=${VCR_CI_MODE:-}
- VCR_PROVIDER_MAP=claude-agent-sdk=https://api.anthropic.com,datadog-experiments=${DD_LLMOBS_EXPERIMENTS_VCR_UPSTREAM:-https://api.datadoghq.com}
- VCR_JSON_BODY_NORMALIZERS=metadata.user_id,output_config.effort,timestamp_ms,start_ns
- >-
VCR_BODY_REGEX_NORMALIZERS=agentId: [a-f0-9]+,SendMessage with to: '[a-f0-9]+',[\s\S]*?,"events":\[\{"event_type":"ClaudeCodeInternalEvent"[^\]]*\],cc_version=[^;]+,cch=[^;]+,(?<="text":")[\s\S]*?(?:\\n)*(?:"\}\x2c\{"type":"text"\x2c"text":"[\s\S]*?(?:\\n)*)*(?="),[\s\S]*?,(?<="input":\{"description":")[^"]*,(?<="name":"Agent"\x2c"description":")(?:[^"\\]|\\.)*,(?<="run_in_background":\{"description":")(?:[^"\\]|\\.)*,(?:You are an agent for Claude Code|Write the title|Report the result concisely\.|Async agent launched successfully|Optional model override for this agent\.|Generate a concise\x2c sentence-case title|You are naming a coding session)(?:\\.|[^"\\])*,--openai-[A-Za-z0-9]+,(?<="span_id":")[0-9a-f]+,(?<="trace_id":")[0-9a-f]+,(?<="start_ns":)\d+,(?<="duration":)\d+,(?<="timestamp_ms":)\d+,run_id:[0-9a-f]+,(?:/private)?/tmp/claude-agent-sdk-config/projects/-(?:private-)?tmp/memory/,(?<=Primary working directory: )[^\\]*,(?<=Platform: )[^\\]*,(?<=Shell: )[^\\]*,(?<=OS Version: )[^\\]*, - Tool results may include data from external sources\.[^\\]*\\n(?: - Text inside [^\\]*\\n)? - Users may configure
# - AWS_SECRET_ACCESS_KEY # uncomment this line for generating aws service cassettes
volumes:
# when there are other products not using the cassette feature from the test agent,
# we can move this directory to a shared location here, and change the above
# environment variable to point to that location
- ./packages/dd-trace/test/llmobs/cassettes:/vcr-cassettes