-
Notifications
You must be signed in to change notification settings - Fork 15
/
docker-compose.yml
142 lines (141 loc) · 4.4 KB
/
docker-compose.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
version: '3.8'
services:
dynamodb:
image: amazon/dynamodb-local
command: -jar DynamoDBLocal.jar -inMemory -sharedDb
ports:
- '8000:8000'
imds:
image: amazon/amazon-ec2-metadata-mock:v1.5.0
ports:
- '1338:1338'
dynamodb-table:
image: amazon/aws-cli
entrypoint: bash
# Wait a few seconds for dynamodb-local to start before creating
command: |
-c "curl --retry 10 --retry-delay 5 --retry-max-time 100 --retry-connrefused http://dynamodb:8000 > /dev/null && \
aws dynamodb create-table \
--table-name scratch \
--attribute-definitions AttributeName=id,AttributeType=S \
--key-schema AttributeName=id,KeyType=HASH \
--provisioned-throughput ReadCapacityUnits=5,WriteCapacityUnits=5 \
--endpoint-url http://dynamodb:8000"
environment:
- AWS_ACCESS_KEY_ID=dummy
- AWS_SECRET_ACCESS_KEY=dummy
- AWS_REGION=dummy
depends_on:
- dynamodb
mysqldb:
image: mysql:5.7
environment:
# Don't ever use such a simple password in prod! This is only for local testing.
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: appdb
ports:
- '3306:3306'
volumes:
- ./scripts/db:/docker-entrypoint-initdb.d
cats-cache:
image: redis:6
ports:
- '6379:6379'
dogs-cache:
image: redis:6
ports:
- '6380:6379'
jaeger-server:
image: jaegertracing/all-in-one:latest
ports:
- "16686:16686"
- "14268"
- "14250"
zipkin-server:
image: openzipkin/zipkin-slim
ports:
- '9412:9411'
otel:
#build:
# context: ../opentelemetry-collector-contrib
# dockerfile: examples/tracing/Dockerfile
image: otel/opentelemetry-collector-contrib-dev
command: --config /config/collector-config.yml --log-level debug
environment:
- AWS_ACCESS_KEY_ID
- AWS_SECRET_ACCESS_KEY
- AWS_REGION=us-east-1
ports:
- '4317:4317'
- '55680:55680'
volumes:
- ./otel:/config
- ~/.aws:/.aws
depends_on:
- zipkin-server
- jaeger-server
go-gorilla:
image: public.ecr.aws/u0d6r4y4/aws-otel-go-test-gorilla:0
environment:
- LISTEN_ADDRESS=0.0.0.0:8080
- OTEL_EXPORTER_OTLP_ENDPOINT=http://otel:4317
- OTEL_RESOURCE_ATTRIBUTES=service.name=go-gorilla
backend:
image: public.ecr.aws/o2z1k4j2/aws-otel-playground:backend
environment:
- OTEL_EXPORTER_OTLP_ENDPOINT=http://otel:4317
ports:
- '8081:8081'
- '8083:8083'
depends_on:
- imds
- mysqldb
- otel
backend-webflux:
image: public.ecr.aws/o2z1k4j2/aws-otel-playground:backend-webflux
environment:
- OTEL_EXPORTER_OTLP_ENDPOINT=http://otel:4317
- IMDS_ENDPOINT=imds:1338
- OTEL_AWS_IMDS_ENDPOINT_OVERRIDE=imds:1338
- CATS_CACHE_ENDPOINT=cats-cache:6379
- DOGS_CACHE_ENDPOINT=dogs-cache:6379
ports:
- '8082:8082'
depends_on:
- imds
- mysqldb
- otel
frontend:
image: public.ecr.aws/o2z1k4j2/aws-otel-playground:frontend
environment:
- AWS_ACCESS_KEY_ID
- AWS_SECRET_ACCESS_KEY
- AWS_REGION=us-east-1
- HELLO_SERVICE_ENDPOINT=backend:8081
- WEBFLUX_BACKEND_ENDPOINT=backend-webflux:8082
- SPARK_BACKEND_ENDPOINT=backend:8083
- GO_GORILLA_BACKEND_ENDPOINT=go-gorilla:8080
- IMDS_ENDPOINT=imds:1338
- OTEL_EXPORTER_OTLP_ENDPOINT=http://otel:4317
- DYNAMODB_ENDPOINT=dynamodb:8000
- CATS_CACHE_ENDPOINT=cats-cache:6379
- DOGS_CACHE_ENDPOINT=dogs-cache:6379
- SPRING_DATASOURCE_URL=jdbc:mysql://mysqldb:3306/appdb
- OTEL_AWS_IMDS_ENDPOINT_OVERRIDE=imds:1338
# AWS Provisioned resources
- API_GATEWAY_ENDPOINT=https://a3iska8nwh.execute-api.us-east-1.amazonaws.com/default
- ECS_ENDPOINT=ecs-backend-37231057.us-east-1.elb.amazonaws.com
- EKS_ENDPOINT=2ccd810c-fargate-backend-8661-1530997741.us-east-1.elb.amazonaws.com
- OTEL_ENDPOINT_PEER_SERVICE_MAPPING=a3iska8nwh.execute-api.us-east-1.amazonaws.com=hello-lambda-api,cats-cache:6379=cats-cache,dogs-cache:6379=dogs-cache,ecs-backend-37231057.us-east-1.elb.amazonaws.com=ecs-backend,2ccd810c-fargate-backend-8661-1530997741.us-east-1.elb.amazonaws.com=eks-backend
ports:
- '9080:9080'
volumes:
- ~/.aws:/root/.aws
depends_on:
- backend
- dynamodb-table
- imds
- mysqldb
- cats-cache
- dogs-cache
- otel