1010# docker-compose build
1111#
1212# # Run SDK generator (init command)
13- # docker-compose run --rm sdk-gen init --project myapp --service my-service
13+ # docker-compose run --rm sdk-gen init --project myapp --service my-service --output /workspace
1414#
1515# # Run RESTful API generator
1616# docker-compose run --rm sdk-restapi new --name my-api
1717#
1818# # Start development environment with observability stack
19- # docker-compose up -d otel-collector jaeger
19+ # docker-compose --profile dev up -d otel-collector jaeger
20+ #
21+ # # Start full observability stack
22+ # docker-compose --profile full up -d
2023#
2124# =============================================================================
2225
@@ -25,8 +28,8 @@ services:
2528 # SDK Generator
2629 # ---------------------------------------------------------------------------
2730 sdk-gen :
28- container_name : ${CONTAINER_NAME:-telemetryflow-sdk-gen}
29- image : ${IMAGE_NAME:-telemetryflow/telemetryflow-sdk}:${IMAGE_TAG:-latest}
31+ container_name : ${CONTAINER_NAME:-telemetryflow-go- sdk-gen}
32+ image : ${IMAGE_NAME:-telemetryflow/telemetryflow-go- sdk}:${IMAGE_TAG:-latest}
3033 build :
3134 context : .
3235 dockerfile : Dockerfile
@@ -47,8 +50,8 @@ services:
4750 # RESTful API Generator
4851 # ---------------------------------------------------------------------------
4952 sdk-restapi :
50- container_name : ${CONTAINER_NAME_RESTAPI:-telemetryflow-sdk-restapi}
51- image : ${IMAGE_NAME:-telemetryflow/telemetryflow-sdk}:${IMAGE_TAG:-latest}
53+ container_name : ${CONTAINER_NAME_RESTAPI:-telemetryflow-go- sdk-restapi}
54+ image : ${IMAGE_NAME:-telemetryflow/telemetryflow-go- sdk}:${IMAGE_TAG:-latest}
5255 build :
5356 context : .
5457 dockerfile : Dockerfile
@@ -59,11 +62,58 @@ services:
5962 BUILD_TIME : ${BUILD_TIME:-unknown}
6063 entrypoint : ["/usr/local/bin/telemetryflow-restapi"]
6164 command : ["--help"]
65+ environment :
66+ - TELEMETRYFLOW_API_KEY_ID=${TELEMETRYFLOW_API_KEY_ID:-tfk_example}
67+ - TELEMETRYFLOW_API_KEY_SECRET=${TELEMETRYFLOW_API_KEY_SECRET:-tfs_example}
68+ - TELEMETRYFLOW_ENDPOINT=${TELEMETRYFLOW_ENDPOINT:-otel-collector:4317}
69+ - TELEMETRYFLOW_SERVICE_NAME=${TELEMETRYFLOW_SERVICE_NAME:-telemetryflow-go-sdk}
70+ - TELEMETRYFLOW_SERVICE_VERSION=${TELEMETRYFLOW_SERVICE_VERSION:-1.0.0}
71+ - TELEMETRYFLOW_ENVIRONMENT=${TELEMETRYFLOW_ENVIRONMENT:-development}
6272 volumes :
6373 - ./workspace:/workspace
6474 working_dir : /workspace
75+ depends_on :
76+ otel-collector :
77+ condition : service_healthy
78+ networks :
79+ - telemetryflow-sdk
80+ profiles :
81+ - example
82+
83+ # ---------------------------------------------------------------------------
84+ # SDK Development Container
85+ # ---------------------------------------------------------------------------
86+ sdk-dev :
87+ container_name : ${CONTAINER_NAME_RESTAPI:-telemetryflow-go-sdk-dev}
88+ image : ${IMAGE_NAME:-telemetryflow/telemetryflow-go-sdk}:${IMAGE_TAG:-latest}
89+ build :
90+ context : .
91+ dockerfile : Dockerfile.dev
92+ args :
93+ VERSION : ${VERSION:-dev}
94+ GIT_COMMIT : ${GIT_COMMIT:-unknown}
95+ GIT_BRANCH : ${GIT_BRANCH:-main}
96+ BUILD_TIME : ${BUILD_TIME:-unknown}
97+ entrypoint : ["/usr/local/bin/telemetryflow-restapi"]
98+ command : ["--help"]
99+ environment :
100+ - TELEMETRYFLOW_API_KEY_ID=${TELEMETRYFLOW_API_KEY_ID:-tfk_example}
101+ - TELEMETRYFLOW_API_KEY_SECRET=${TELEMETRYFLOW_API_KEY_SECRET:-tfs_example}
102+ - TELEMETRYFLOW_ENDPOINT=${TELEMETRYFLOW_ENDPOINT:-otel-collector:4317}
103+ - TELEMETRYFLOW_SERVICE_NAME=${TELEMETRYFLOW_SERVICE_NAME:-telemetryflow-go-sdk-dev}
104+ - TELEMETRYFLOW_SERVICE_VERSION=${TELEMETRYFLOW_SERVICE_VERSION:-1.0.0}
105+ - TELEMETRYFLOW_ENVIRONMENT=${TELEMETRYFLOW_ENVIRONMENT:-development}
106+ volumes :
107+ - .:/app
108+ - ./workspace:/workspace
109+ working_dir : /app
110+ depends_on :
111+ otel-collector :
112+ condition : service_healthy
65113 networks :
66114 - telemetryflow-sdk
115+ profiles :
116+ - dev
67117
68118 # ---------------------------------------------------------------------------
69119 # OpenTelemetry Collector (for local development)
@@ -73,10 +123,10 @@ services:
73123 image : otel/opentelemetry-collector-contrib:${OTEL_VERSION:-0.142.0}
74124 command : ["--config=/etc/otel/config.yaml"]
75125 ports :
76- - " ${OTLP_GRPC_PORT:-4317}:4317" # OTLP gRPC
77- - " ${OTLP_HTTP_PORT:-4318}:4318" # OTLP HTTP
78- - " ${OTEL_METRICS_PORT:-8888}:8888" # Prometheus metrics
79- - " ${OTEL_HEALTH_PORT:-13133}:13133" # Health check
126+ - " ${OTLP_GRPC_PORT:-4317}:4317" # OTLP gRPC
127+ - " ${OTLP_HTTP_PORT:-4318}:4318" # OTLP HTTP
128+ - " ${OTEL_METRICS_PORT:-8888}:8888" # Prometheus metrics
129+ - " ${OTEL_HEALTH_PORT:-13133}:13133" # Health check
80130 volumes :
81131 - ./configs/otel-collector.yaml:/etc/otel/config.yaml:ro
82132 healthcheck :
@@ -89,17 +139,18 @@ services:
89139 profiles :
90140 - dev
91141 - full
142+ - example
92143
93144 # ---------------------------------------------------------------------------
94145 # Jaeger (for trace visualization)
95146 # ---------------------------------------------------------------------------
96147 jaeger :
97148 container_name : jaeger-dev
98- image : jaegertracing/all-in-one:1.52
149+ image : jaegertracing/all-in-one:${JAEGER_VERSION:-1.64}
99150 ports :
100- - " ${JAEGER_UI_PORT:-16686}:16686" # Jaeger UI
101- - " ${JAEGER_HTTP_PORT:-14268}:14268" # Jaeger HTTP collector
102- - " ${JAEGER_GRPC_PORT:-14250}:14250" # Jaeger gRPC
151+ - " ${JAEGER_UI_PORT:-16686}:16686" # Jaeger UI
152+ - " ${JAEGER_HTTP_PORT:-14268}:14268" # Jaeger HTTP collector
153+ - " ${JAEGER_GRPC_PORT:-14250}:14250" # Jaeger gRPC
103154 environment :
104155 - COLLECTOR_OTLP_ENABLED=true
105156 networks :
@@ -113,7 +164,7 @@ services:
113164 # ---------------------------------------------------------------------------
114165 prometheus :
115166 container_name : prometheus-dev
116- image : prom/prometheus:v2.48.0
167+ image : prom/prometheus:${PROMETHEUS_VERSION:- v2.54.1}
117168 ports :
118169 - " ${PROMETHEUS_PORT:-9090}:9090"
119170 volumes :
@@ -133,7 +184,7 @@ services:
133184 # ---------------------------------------------------------------------------
134185 grafana :
135186 container_name : grafana-dev
136- image : grafana/grafana:10.2.2
187+ image : grafana/grafana:${GRAFANA_VERSION:-11.4.0}
137188 ports :
138189 - " ${GRAFANA_PORT:-3000}:3000"
139190 environment :
@@ -163,4 +214,4 @@ volumes:
163214networks :
164215 telemetryflow-sdk :
165216 driver : bridge
166- name : telemetryflow-sdk-network
217+ name : telemetryflow-go- sdk-network
0 commit comments