container-superposition 0.1.8 → 0.1.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -0
- package/dist/tool/cli/args.d.ts.map +1 -1
- package/dist/tool/cli/args.js +1 -1
- package/dist/tool/cli/args.js.map +1 -1
- package/dist/tool/commands/adopt.d.ts.map +1 -1
- package/dist/tool/commands/adopt.js +15 -21
- package/dist/tool/commands/adopt.js.map +1 -1
- package/dist/tool/commands/doctor.d.ts +1 -0
- package/dist/tool/commands/doctor.d.ts.map +1 -1
- package/dist/tool/commands/doctor.js +1370 -73
- package/dist/tool/commands/doctor.js.map +1 -1
- package/dist/tool/questionnaire/composer.d.ts +3 -1
- package/dist/tool/questionnaire/composer.d.ts.map +1 -1
- package/dist/tool/questionnaire/composer.js +273 -20
- package/dist/tool/questionnaire/composer.js.map +1 -1
- package/dist/tool/questionnaire/presets.d.ts.map +1 -1
- package/dist/tool/questionnaire/presets.js +1 -0
- package/dist/tool/questionnaire/presets.js.map +1 -1
- package/dist/tool/questionnaire/questionnaire.d.ts.map +1 -1
- package/dist/tool/questionnaire/questionnaire.js +3 -1
- package/dist/tool/questionnaire/questionnaire.js.map +1 -1
- package/dist/tool/schema/project-config.d.ts.map +1 -1
- package/dist/tool/schema/project-config.js +174 -1
- package/dist/tool/schema/project-config.js.map +1 -1
- package/dist/tool/schema/types.d.ts +53 -2
- package/dist/tool/schema/types.d.ts.map +1 -1
- package/docs/README.md +1 -0
- package/docs/overlays.md +188 -147
- package/docs/specs/001-verbose-plan-graph/spec.md +5 -12
- package/docs/specs/002-superposition-config-file/spec.md +5 -12
- package/docs/specs/003-mkdocs2-overlay/spec.md +2 -9
- package/docs/specs/004-doctor-fix/spec.md +1 -8
- package/docs/specs/005-cuda-overlay/spec.md +2 -9
- package/docs/specs/006-rocm-overlay/spec.md +3 -10
- package/docs/specs/007-target-aware-generation/spec.md +4 -11
- package/docs/specs/008-project-file-canonical/spec.md +7 -8
- package/docs/specs/009-project-env/spec.md +3 -10
- package/docs/specs/010-compose-env-materialization/spec.md +3 -10
- package/docs/specs/011-overlay-parameters/spec.md +2 -9
- package/docs/specs/012-ollama-cli-overlay/spec.md +47 -0
- package/docs/specs/013-doctor-dependency-check/spec.md +250 -0
- package/docs/specs/014-doctor-compose-port-cross-validation/spec.md +276 -0
- package/docs/specs/015-doctor-env-example-drift/spec.md +248 -0
- package/docs/specs/016-doctor-reproducibility-check/spec.md +276 -0
- package/docs/specs/017-doctor-dry-run/spec.md +276 -0
- package/docs/specs/{007-init-project-file → 018-init-project-file}/spec.md +2 -9
- package/docs/specs/019-project-mounts/spec.md +176 -0
- package/docs/specs/taxonomy.md +186 -0
- package/docs/superposition-yml.md +467 -0
- package/overlays/.presets/full-observability.yml +113 -0
- package/overlays/.presets/k8s-dev.yml +174 -0
- package/overlays/.presets/local-llm.yml +105 -0
- package/overlays/.presets/vector-ai.yml +150 -0
- package/overlays/.shared/vscode/js-ts-settings.json +19 -0
- package/overlays/.shared/vscode/markdown-extensions.json +8 -0
- package/overlays/alertmanager/devcontainer.patch.json +0 -1
- package/overlays/alertmanager/docker-compose.yml +8 -0
- package/overlays/alertmanager/overlay.yml +1 -0
- package/overlays/amp/devcontainer.patch.json +4 -1
- package/overlays/ansible/README.md +163 -0
- package/overlays/ansible/devcontainer.patch.json +14 -0
- package/overlays/ansible/overlay.yml +18 -0
- package/overlays/argocd/README.md +158 -0
- package/overlays/argocd/devcontainer.patch.json +9 -0
- package/overlays/argocd/overlay.yml +17 -0
- package/overlays/argocd/setup.sh +29 -0
- package/overlays/argocd/verify.sh +14 -0
- package/overlays/bun/devcontainer.patch.json +1 -10
- package/overlays/bun/overlay.yml +8 -1
- package/overlays/claude-code/devcontainer.patch.json +6 -1
- package/overlays/codex/devcontainer.patch.json +5 -0
- package/overlays/comfyui/docker-compose.yml +1 -0
- package/overlays/comfyui/overlay.yml +4 -0
- package/overlays/commitlint/devcontainer.patch.json +1 -6
- package/overlays/docker-sock/overlay.yml +1 -0
- package/overlays/dotnet/overlay.yml +4 -1
- package/overlays/fuseki/.env.example +5 -0
- package/overlays/fuseki/README.md +173 -0
- package/overlays/fuseki/devcontainer.patch.json +18 -0
- package/overlays/fuseki/docker-compose.yml +29 -0
- package/overlays/fuseki/overlay.yml +42 -0
- package/overlays/fuseki/verify.sh +58 -0
- package/overlays/gemini-cli/devcontainer.patch.json +4 -1
- package/overlays/go/overlay.yml +6 -1
- package/overlays/grafana/devcontainer.patch.json +0 -1
- package/overlays/grafana/docker-compose.yml +8 -2
- package/overlays/grafana/overlay.yml +6 -1
- package/overlays/jaeger/.env.example +11 -0
- package/overlays/jaeger/README.md +33 -4
- package/overlays/jaeger/devcontainer.patch.json +9 -1
- package/overlays/jaeger/docker-compose.yml +17 -0
- package/overlays/jaeger/overlay.yml +1 -12
- package/overlays/java/overlay.yml +6 -1
- package/overlays/jupyter/docker-compose.yml +1 -0
- package/overlays/jupyter/overlay.yml +1 -0
- package/overlays/keycloak/devcontainer.patch.json +0 -1
- package/overlays/keycloak/docker-compose.yml +1 -0
- package/overlays/keycloak/overlay.yml +15 -0
- package/overlays/localstack/docker-compose.yml +1 -0
- package/overlays/localstack/overlay.yml +19 -1
- package/overlays/loki/devcontainer.patch.json +0 -1
- package/overlays/loki/docker-compose.yml +8 -0
- package/overlays/loki/overlay.yml +1 -0
- package/overlays/mailpit/docker-compose.yml +1 -0
- package/overlays/mailpit/overlay.yml +1 -0
- package/overlays/minio/devcontainer.patch.json +1 -1
- package/overlays/minio/docker-compose.yml +1 -0
- package/overlays/minio/overlay.yml +23 -2
- package/overlays/mkdocs/devcontainer.patch.json +1 -5
- package/overlays/mkdocs/overlay.yml +3 -1
- package/overlays/mkdocs2/devcontainer.patch.json +1 -5
- package/overlays/mkdocs2/overlay.yml +2 -0
- package/overlays/mongodb/docker-compose.yml +2 -0
- package/overlays/mongodb/overlay.yml +26 -2
- package/overlays/mysql/docker-compose.yml +2 -0
- package/overlays/mysql/overlay.yml +36 -2
- package/overlays/nats/docker-compose.yml +1 -0
- package/overlays/nats/overlay.yml +18 -2
- package/overlays/nodejs/devcontainer.patch.json +1 -12
- package/overlays/nodejs/overlay.yml +8 -1
- package/overlays/ollama/README.md +4 -3
- package/overlays/ollama/docker-compose.yml +1 -0
- package/overlays/ollama/overlay.yml +6 -1
- package/overlays/ollama/verify.sh +5 -28
- package/overlays/ollama-cli/README.md +90 -0
- package/overlays/ollama-cli/devcontainer.patch.json +3 -0
- package/overlays/ollama-cli/overlay.yml +19 -0
- package/overlays/{ollama → ollama-cli}/setup.sh +7 -10
- package/overlays/ollama-cli/verify.sh +49 -0
- package/overlays/open-webui/docker-compose.yml +1 -0
- package/overlays/open-webui/overlay.yml +8 -1
- package/overlays/opencode/devcontainer.patch.json +4 -1
- package/overlays/otel-collector/README.md +4 -0
- package/overlays/otel-collector/devcontainer.patch.json +4 -1
- package/overlays/otel-collector/docker-compose.yml +8 -4
- package/overlays/otel-collector/overlay.yml +1 -0
- package/overlays/otel-demo-nodejs/devcontainer.patch.json +0 -1
- package/overlays/otel-demo-nodejs/docker-compose.yml +1 -0
- package/overlays/otel-demo-nodejs/overlay.yml +9 -1
- package/overlays/otel-demo-python/devcontainer.patch.json +0 -1
- package/overlays/otel-demo-python/docker-compose.yml +1 -0
- package/overlays/otel-demo-python/overlay.yml +6 -1
- package/overlays/pandoc/README.md +10 -0
- package/overlays/pandoc/devcontainer.patch.json +0 -5
- package/overlays/pandoc/overlay.yml +2 -0
- package/overlays/pandoc/setup.sh +10 -0
- package/overlays/pgvector/devcontainer.patch.json +11 -5
- package/overlays/pgvector/docker-compose.yml +1 -0
- package/overlays/pgvector/overlay.yml +3 -0
- package/overlays/playwright/devcontainer.patch.json +0 -5
- package/overlays/playwright/overlay.yml +2 -1
- package/overlays/postgres/docker-compose.yml +1 -0
- package/overlays/postgres/overlay.yml +4 -1
- package/overlays/pre-commit/devcontainer.patch.json +1 -7
- package/overlays/prometheus/devcontainer.patch.json +0 -1
- package/overlays/prometheus/docker-compose.yml +8 -0
- package/overlays/prometheus/overlay.yml +1 -0
- package/overlays/promtail/devcontainer.patch.json +1 -2
- package/overlays/promtail/docker-compose.yml +8 -0
- package/overlays/promtail/overlay.yml +1 -0
- package/overlays/qdrant/docker-compose.yml +1 -0
- package/overlays/qdrant/overlay.yml +5 -1
- package/overlays/rabbitmq/docker-compose.yml +1 -0
- package/overlays/rabbitmq/overlay.yml +25 -2
- package/overlays/redis/docker-compose.yml +7 -0
- package/overlays/redis/overlay.yml +15 -1
- package/overlays/redpanda/docker-compose.yml +1 -0
- package/overlays/redpanda/overlay.yml +15 -3
- package/overlays/rocm/overlay.yml +2 -1
- package/overlays/rust/overlay.yml +3 -1
- package/overlays/sqlserver/docker-compose.yml +1 -0
- package/overlays/sqlserver/overlay.yml +17 -0
- package/overlays/task/README.md +47 -0
- package/overlays/task/devcontainer.patch.json +9 -0
- package/overlays/task/overlay.yml +16 -0
- package/overlays/task/setup.sh +29 -0
- package/overlays/task/verify.sh +14 -0
- package/overlays/tempo/devcontainer.patch.json +0 -1
- package/overlays/tempo/docker-compose.yml +8 -0
- package/overlays/tempo/overlay.yml +1 -0
- package/overlays/windsurf-cli/devcontainer.patch.json +4 -1
- package/package.json +1 -1
- package/tool/schema/config.schema.json +74 -1
- package/overlays/.shared/otel/otel-base-config.yaml +0 -30
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# Verification script for Apache Jena Fuseki overlay
|
|
3
|
+
# Confirms Fuseki is running and responding to requests
|
|
4
|
+
|
|
5
|
+
set -e
|
|
6
|
+
|
|
7
|
+
FUSEKI_HOST="${FUSEKI_HOST:-fuseki}"
|
|
8
|
+
FUSEKI_PORT="${FUSEKI_PORT:-3030}"
|
|
9
|
+
FUSEKI_URL="http://${FUSEKI_HOST}:${FUSEKI_PORT}"
|
|
10
|
+
|
|
11
|
+
echo "Verifying Apache Jena Fuseki overlay..."
|
|
12
|
+
echo ""
|
|
13
|
+
|
|
14
|
+
# Check curl is available
|
|
15
|
+
echo "1. Checking curl availability..."
|
|
16
|
+
if command -v curl &> /dev/null; then
|
|
17
|
+
echo " curl found"
|
|
18
|
+
else
|
|
19
|
+
echo " curl not found - cannot verify Fuseki service"
|
|
20
|
+
exit 1
|
|
21
|
+
fi
|
|
22
|
+
|
|
23
|
+
# Check Fuseki ping endpoint
|
|
24
|
+
echo ""
|
|
25
|
+
echo "2. Checking Fuseki service at ${FUSEKI_URL}/\$/ping..."
|
|
26
|
+
FUSEKI_READY=false
|
|
27
|
+
for i in {1..15}; do
|
|
28
|
+
if curl -sf "${FUSEKI_URL}/\$/ping" &> /dev/null; then
|
|
29
|
+
echo " Fuseki service is ready"
|
|
30
|
+
FUSEKI_READY=true
|
|
31
|
+
break
|
|
32
|
+
fi
|
|
33
|
+
sleep 2
|
|
34
|
+
done
|
|
35
|
+
|
|
36
|
+
if [ "$FUSEKI_READY" = false ]; then
|
|
37
|
+
echo " Fuseki service not ready after 30 seconds"
|
|
38
|
+
exit 1
|
|
39
|
+
fi
|
|
40
|
+
|
|
41
|
+
# Check dataset exists
|
|
42
|
+
DATASET="${FUSEKI_DATASET:-ds}"
|
|
43
|
+
ADMIN_PASSWORD="${FUSEKI_ADMIN_PASSWORD:-admin}"
|
|
44
|
+
echo ""
|
|
45
|
+
echo "3. Checking dataset '${DATASET}' exists..."
|
|
46
|
+
HTTP_STATUS=$(curl -s -o /dev/null -w "%{http_code}" \
|
|
47
|
+
-u "admin:${ADMIN_PASSWORD}" \
|
|
48
|
+
"${FUSEKI_URL}/\$/datasets/${DATASET}")
|
|
49
|
+
|
|
50
|
+
if [ "$HTTP_STATUS" = "200" ]; then
|
|
51
|
+
echo " Dataset '${DATASET}' found"
|
|
52
|
+
else
|
|
53
|
+
echo " Dataset '${DATASET}' not found (HTTP ${HTTP_STATUS}) - it may still be initializing"
|
|
54
|
+
fi
|
|
55
|
+
|
|
56
|
+
echo ""
|
|
57
|
+
echo "Apache Jena Fuseki overlay verification complete"
|
|
58
|
+
echo "Admin UI: ${FUSEKI_URL}"
|
|
@@ -1,3 +1,6 @@
|
|
|
1
1
|
{
|
|
2
|
-
"$schema": "https://raw.githubusercontent.com/devcontainers/spec/main/schemas/devContainer.base.schema.json"
|
|
2
|
+
"$schema": "https://raw.githubusercontent.com/devcontainers/spec/main/schemas/devContainer.base.schema.json",
|
|
3
|
+
"postCreateCommand": {
|
|
4
|
+
"setup-gemini-cli": "bash .devcontainer/scripts/setup-gemini-cli.sh"
|
|
5
|
+
}
|
|
3
6
|
}
|
package/overlays/go/overlay.yml
CHANGED
|
@@ -2,6 +2,7 @@ version: '3.8'
|
|
|
2
2
|
services:
|
|
3
3
|
grafana:
|
|
4
4
|
image: grafana/grafana:${GRAFANA_VERSION:-latest}
|
|
5
|
+
restart: unless-stopped
|
|
5
6
|
environment:
|
|
6
7
|
- GF_SECURITY_ADMIN_USER=${GRAFANA_ADMIN_USER:-admin}
|
|
7
8
|
- GF_SECURITY_ADMIN_PASSWORD=${GRAFANA_ADMIN_PASSWORD:-admin}
|
|
@@ -15,13 +16,18 @@ services:
|
|
|
15
16
|
- '${GRAFANA_PORT:-3000}:3000'
|
|
16
17
|
depends_on:
|
|
17
18
|
- prometheus
|
|
18
|
-
- loki
|
|
19
|
-
- jaeger
|
|
20
19
|
networks:
|
|
21
20
|
- devnet
|
|
21
|
+
healthcheck:
|
|
22
|
+
test: ['CMD', 'wget', '-qO-', 'http://localhost:3000/api/health']
|
|
23
|
+
interval: 10s
|
|
24
|
+
timeout: 5s
|
|
25
|
+
retries: 5
|
|
26
|
+
start_period: 20s
|
|
22
27
|
|
|
23
28
|
volumes:
|
|
24
29
|
grafana_data:
|
|
25
30
|
|
|
26
31
|
networks:
|
|
27
32
|
devnet:
|
|
33
|
+
name: devnet
|
|
@@ -11,7 +11,11 @@ suggests:
|
|
|
11
11
|
- jaeger
|
|
12
12
|
- tempo
|
|
13
13
|
- promtail
|
|
14
|
-
conflicts:
|
|
14
|
+
conflicts:
|
|
15
|
+
- open-webui
|
|
16
|
+
- nodejs
|
|
17
|
+
- bun
|
|
18
|
+
- rust
|
|
15
19
|
tags:
|
|
16
20
|
- observability
|
|
17
21
|
- ui
|
|
@@ -24,3 +28,4 @@ ports:
|
|
|
24
28
|
path: /
|
|
25
29
|
onAutoForward: openBrowser
|
|
26
30
|
order: 3
|
|
31
|
+
serviceOrder: 3
|
|
@@ -5,3 +5,14 @@ JAEGER_VERSION=latest
|
|
|
5
5
|
JAEGER_UI_PORT=16686
|
|
6
6
|
JAEGER_OTLP_GRPC_PORT=4317
|
|
7
7
|
JAEGER_OTLP_HTTP_PORT=4318
|
|
8
|
+
|
|
9
|
+
# OpenTelemetry SDK defaults for apps running in the devcontainer
|
|
10
|
+
# These are pre-set in the devcontainer via remoteEnv; see devcontainer.patch.json
|
|
11
|
+
# Customize after generation by editing remoteEnv in .devcontainer/devcontainer.json
|
|
12
|
+
OTEL_SERVICE_NAME=my-service
|
|
13
|
+
OTEL_SERVICE_VERSION=0.1.0
|
|
14
|
+
OTEL_EXPORTER_OTLP_ENDPOINT=http://jaeger:4317
|
|
15
|
+
OTEL_EXPORTER_OTLP_PROTOCOL=grpc
|
|
16
|
+
OTEL_RESOURCE_ATTRIBUTES=deployment.environment=development
|
|
17
|
+
OTEL_TRACES_SAMPLER=always_on
|
|
18
|
+
OTEL_TRACES_EXPORTER=otlp
|
|
@@ -33,10 +33,35 @@ graph TD
|
|
|
33
33
|
### Ports
|
|
34
34
|
|
|
35
35
|
- `16686` - Jaeger UI (web interface)
|
|
36
|
-
- `4317` - OTLP gRPC receiver (
|
|
37
|
-
- `4318` - OTLP HTTP receiver (
|
|
36
|
+
- `4317` - OTLP gRPC receiver (internal Docker network only; not published to host)
|
|
37
|
+
- `4318` - OTLP HTTP receiver (internal Docker network only; not published to host)
|
|
38
38
|
|
|
39
|
-
⚠️ **Note:** When using with **otel-collector**,
|
|
39
|
+
⚠️ **Note:** When using with **otel-collector**, send telemetry to `otel-collector:4317` instead — the collector forwards to Jaeger internally.
|
|
40
|
+
|
|
41
|
+
### Pre-configured OpenTelemetry Environment
|
|
42
|
+
|
|
43
|
+
The devcontainer is pre-configured with OTEL environment variables so that any properly-instrumented app running inside the devcontainer sends traces to Jaeger automatically:
|
|
44
|
+
|
|
45
|
+
| Variable | Default value | Purpose |
|
|
46
|
+
| ----------------------------- | ------------------------------------ | -------------------------------------- |
|
|
47
|
+
| `OTEL_SERVICE_NAME` | `my-service` | Service name shown in Jaeger UI |
|
|
48
|
+
| `OTEL_SERVICE_VERSION` | `0.1.0` | Service version in resource attributes |
|
|
49
|
+
| `OTEL_EXPORTER_OTLP_ENDPOINT` | `http://jaeger:4317` | OTLP gRPC endpoint (Docker network) |
|
|
50
|
+
| `OTEL_EXPORTER_OTLP_PROTOCOL` | `grpc` | Transport protocol |
|
|
51
|
+
| `OTEL_RESOURCE_ATTRIBUTES` | `deployment.environment=development` | Additional resource metadata |
|
|
52
|
+
| `OTEL_TRACES_SAMPLER` | `always_on` | Capture every trace in development |
|
|
53
|
+
| `OTEL_TRACES_EXPORTER` | `otlp` | Export traces via OTLP |
|
|
54
|
+
|
|
55
|
+
These values are set via `remoteEnv` in `devcontainer.json`. To override them for your project, edit `.devcontainer/devcontainer.json` after generation and update the `remoteEnv` block, then rebuild the container:
|
|
56
|
+
|
|
57
|
+
```json
|
|
58
|
+
"remoteEnv": {
|
|
59
|
+
"OTEL_SERVICE_NAME": "my-app",
|
|
60
|
+
"OTEL_SERVICE_VERSION": "1.0.0"
|
|
61
|
+
}
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
When the **otel-collector** overlay is also selected, `OTEL_EXPORTER_OTLP_ENDPOINT` is automatically set to `http://otel-collector:4317` (otel-collector overlay is applied after jaeger and overrides this value).
|
|
40
65
|
|
|
41
66
|
### Environment Variables
|
|
42
67
|
|
|
@@ -74,12 +99,16 @@ container-superposition --port-offset 100
|
|
|
74
99
|
|
|
75
100
|
## Accessing Jaeger UI
|
|
76
101
|
|
|
77
|
-
Once your devcontainer starts,
|
|
102
|
+
Once your devcontainer starts, VS Code automatically opens <http://localhost:16686> in your browser (via `onAutoForward: openBrowser`). You can also open it manually:
|
|
78
103
|
|
|
79
104
|
```
|
|
80
105
|
http://localhost:16686
|
|
81
106
|
```
|
|
82
107
|
|
|
108
|
+
Port `16686` is published by the `jaeger` Docker Compose service to your local machine, so it is accessible both from the host and from within the devcontainer via `http://jaeger:16686`.
|
|
109
|
+
|
|
110
|
+
The `devcontainer` service has `depends_on: jaeger: condition: service_healthy`, so Docker Compose waits for Jaeger to pass its healthcheck before starting the devcontainer. This ensures the UI is reachable by the time VS Code opens the browser.
|
|
111
|
+
|
|
83
112
|
### UI Features
|
|
84
113
|
|
|
85
114
|
**1. Search Traces**
|
|
@@ -1,12 +1,20 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://raw.githubusercontent.com/devcontainers/spec/main/schemas/devContainer.base.schema.json",
|
|
3
3
|
"runServices": ["jaeger"],
|
|
4
|
-
"_serviceOrder": 1,
|
|
5
4
|
"forwardPorts": [16686],
|
|
6
5
|
"portsAttributes": {
|
|
7
6
|
"16686": {
|
|
8
7
|
"label": "Jaeger UI",
|
|
9
8
|
"onAutoForward": "openBrowser"
|
|
10
9
|
}
|
|
10
|
+
},
|
|
11
|
+
"remoteEnv": {
|
|
12
|
+
"OTEL_SERVICE_NAME": "my-service",
|
|
13
|
+
"OTEL_SERVICE_VERSION": "0.1.0",
|
|
14
|
+
"OTEL_EXPORTER_OTLP_ENDPOINT": "http://jaeger:4317",
|
|
15
|
+
"OTEL_EXPORTER_OTLP_PROTOCOL": "grpc",
|
|
16
|
+
"OTEL_RESOURCE_ATTRIBUTES": "deployment.environment=development",
|
|
17
|
+
"OTEL_TRACES_SAMPLER": "always_on",
|
|
18
|
+
"OTEL_TRACES_EXPORTER": "otlp"
|
|
11
19
|
}
|
|
12
20
|
}
|
|
@@ -2,6 +2,7 @@ version: '3.8'
|
|
|
2
2
|
services:
|
|
3
3
|
jaeger:
|
|
4
4
|
image: jaegertracing/all-in-one:${JAEGER_VERSION:-latest}
|
|
5
|
+
restart: unless-stopped
|
|
5
6
|
environment:
|
|
6
7
|
- COLLECTOR_OTLP_ENABLED=true
|
|
7
8
|
ports:
|
|
@@ -12,6 +13,22 @@ services:
|
|
|
12
13
|
# Apps should send telemetry to otel-collector, which forwards to Jaeger if both are used
|
|
13
14
|
networks:
|
|
14
15
|
- devnet
|
|
16
|
+
healthcheck:
|
|
17
|
+
test:
|
|
18
|
+
[
|
|
19
|
+
'CMD-SHELL',
|
|
20
|
+
'wget --no-verbose --tries=1 --spider http://localhost:14269/ || exit 1',
|
|
21
|
+
]
|
|
22
|
+
interval: 5s
|
|
23
|
+
timeout: 5s
|
|
24
|
+
retries: 10
|
|
25
|
+
start_period: 10s
|
|
26
|
+
|
|
27
|
+
devcontainer:
|
|
28
|
+
depends_on:
|
|
29
|
+
jaeger:
|
|
30
|
+
condition: service_healthy
|
|
15
31
|
|
|
16
32
|
networks:
|
|
17
33
|
devnet:
|
|
34
|
+
name: devnet
|
|
@@ -19,16 +19,5 @@ ports:
|
|
|
19
19
|
description: Jaeger UI
|
|
20
20
|
path: /
|
|
21
21
|
onAutoForward: openBrowser
|
|
22
|
-
- port: 14250
|
|
23
|
-
service: jaeger
|
|
24
|
-
protocol: grpc
|
|
25
|
-
description: Jaeger gRPC receiver
|
|
26
|
-
onAutoForward: ignore
|
|
27
|
-
- port: 14268
|
|
28
|
-
service: jaeger
|
|
29
|
-
protocol: http
|
|
30
|
-
description: Jaeger HTTP receiver
|
|
31
|
-
onAutoForward: ignore
|
|
32
22
|
order: 1
|
|
33
|
-
|
|
34
|
-
- .shared/otel/instrumentation.env
|
|
23
|
+
serviceOrder: 1
|
|
@@ -8,6 +8,7 @@ requires:
|
|
|
8
8
|
- postgres
|
|
9
9
|
suggests: []
|
|
10
10
|
conflicts: []
|
|
11
|
+
serviceOrder: 2
|
|
11
12
|
tags:
|
|
12
13
|
- dev
|
|
13
14
|
- auth
|
|
@@ -21,3 +22,17 @@ ports:
|
|
|
21
22
|
description: Keycloak admin console and auth endpoints
|
|
22
23
|
path: /
|
|
23
24
|
onAutoForward: openBrowser
|
|
25
|
+
parameters:
|
|
26
|
+
KEYCLOAK_VERSION:
|
|
27
|
+
description: Keycloak image version tag
|
|
28
|
+
default: '26.0'
|
|
29
|
+
KEYCLOAK_PORT:
|
|
30
|
+
description: Host port mapped to Keycloak HTTP (8180 inside container)
|
|
31
|
+
default: '8180'
|
|
32
|
+
KEYCLOAK_ADMIN:
|
|
33
|
+
description: Keycloak initial admin username
|
|
34
|
+
default: admin
|
|
35
|
+
KEYCLOAK_ADMIN_PASSWORD:
|
|
36
|
+
description: Keycloak initial admin password
|
|
37
|
+
default: admin
|
|
38
|
+
sensitive: true
|
|
@@ -7,7 +7,25 @@ supports:
|
|
|
7
7
|
requires: []
|
|
8
8
|
suggests:
|
|
9
9
|
- aws-cli
|
|
10
|
-
conflicts:
|
|
10
|
+
conflicts:
|
|
11
|
+
- minio
|
|
12
|
+
serviceOrder: 0
|
|
13
|
+
parameters:
|
|
14
|
+
LOCALSTACK_VERSION:
|
|
15
|
+
description: LocalStack image version tag
|
|
16
|
+
default: latest
|
|
17
|
+
LOCALSTACK_EDGE_PORT:
|
|
18
|
+
description: Host port mapped to LocalStack edge (4566 inside container)
|
|
19
|
+
default: '4566'
|
|
20
|
+
LOCALSTACK_S3_PORT:
|
|
21
|
+
description: Host port mapped to LocalStack S3 legacy endpoint (4571 inside container)
|
|
22
|
+
default: '4571'
|
|
23
|
+
LOCALSTACK_SERVICES:
|
|
24
|
+
description: Comma-separated list of AWS services to enable
|
|
25
|
+
default: s3,sqs,sns,dynamodb,lambda,cloudformation
|
|
26
|
+
LOCALSTACK_DEBUG:
|
|
27
|
+
description: Enable LocalStack debug logging (0 or 1)
|
|
28
|
+
default: '0'
|
|
11
29
|
tags:
|
|
12
30
|
- cloud
|
|
13
31
|
- aws
|
|
@@ -2,6 +2,7 @@ version: '3.8'
|
|
|
2
2
|
services:
|
|
3
3
|
loki:
|
|
4
4
|
image: grafana/loki:${LOKI_VERSION:-latest}
|
|
5
|
+
restart: unless-stopped
|
|
5
6
|
command: -config.file=/etc/loki/loki-config.yaml
|
|
6
7
|
volumes:
|
|
7
8
|
- ./loki-config-loki.yaml:/etc/loki/loki-config.yaml
|
|
@@ -10,9 +11,16 @@ services:
|
|
|
10
11
|
- '${LOKI_PORT:-3100}:3100'
|
|
11
12
|
networks:
|
|
12
13
|
- devnet
|
|
14
|
+
healthcheck:
|
|
15
|
+
test: ['CMD', 'wget', '-qO-', 'http://localhost:3100/ready']
|
|
16
|
+
interval: 10s
|
|
17
|
+
timeout: 5s
|
|
18
|
+
retries: 5
|
|
19
|
+
start_period: 15s
|
|
13
20
|
|
|
14
21
|
volumes:
|
|
15
22
|
loki_data:
|
|
16
23
|
|
|
17
24
|
networks:
|
|
18
25
|
devnet:
|
|
26
|
+
name: devnet
|
|
@@ -5,8 +5,29 @@ category: database
|
|
|
5
5
|
supports:
|
|
6
6
|
- compose
|
|
7
7
|
requires: []
|
|
8
|
-
suggests:
|
|
9
|
-
|
|
8
|
+
suggests:
|
|
9
|
+
- prometheus
|
|
10
|
+
- grafana
|
|
11
|
+
conflicts:
|
|
12
|
+
- localstack
|
|
13
|
+
serviceOrder: 0
|
|
14
|
+
parameters:
|
|
15
|
+
MINIO_VERSION:
|
|
16
|
+
description: MinIO image version tag
|
|
17
|
+
default: latest
|
|
18
|
+
MINIO_API_PORT:
|
|
19
|
+
description: Host port mapped to MinIO S3 API (9000 inside container)
|
|
20
|
+
default: '9000'
|
|
21
|
+
MINIO_CONSOLE_PORT:
|
|
22
|
+
description: Host port mapped to MinIO web console (9001 inside container)
|
|
23
|
+
default: '9001'
|
|
24
|
+
MINIO_ROOT_USER:
|
|
25
|
+
description: MinIO root username (access key)
|
|
26
|
+
default: minioadmin
|
|
27
|
+
MINIO_ROOT_PASSWORD:
|
|
28
|
+
description: MinIO root password (secret key)
|
|
29
|
+
default: minioadmin
|
|
30
|
+
sensitive: true
|
|
10
31
|
tags:
|
|
11
32
|
- database
|
|
12
33
|
- storage
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
id: mkdocs
|
|
2
2
|
name: MkDocs
|
|
3
3
|
description: Material for MkDocs - professional documentation generator
|
|
4
|
-
category:
|
|
4
|
+
category: dev
|
|
5
5
|
supports: []
|
|
6
6
|
requires:
|
|
7
7
|
- python
|
|
@@ -12,5 +12,7 @@ tags:
|
|
|
12
12
|
- documentation
|
|
13
13
|
- mkdocs
|
|
14
14
|
- python
|
|
15
|
+
imports:
|
|
16
|
+
- .shared/vscode/markdown-extensions.json
|
|
15
17
|
ports:
|
|
16
18
|
- 8000
|
|
@@ -2,11 +2,7 @@
|
|
|
2
2
|
"$schema": "https://raw.githubusercontent.com/devcontainers/spec/main/schemas/devContainer.base.schema.json",
|
|
3
3
|
"customizations": {
|
|
4
4
|
"vscode": {
|
|
5
|
-
"extensions": [
|
|
6
|
-
"yzhang.markdown-all-in-one",
|
|
7
|
-
"DavidAnson.vscode-markdownlint",
|
|
8
|
-
"bierner.markdown-mermaid"
|
|
9
|
-
]
|
|
5
|
+
"extensions": ["bierner.markdown-mermaid"]
|
|
10
6
|
}
|
|
11
7
|
},
|
|
12
8
|
"forwardPorts": [8000],
|
|
@@ -5,8 +5,32 @@ category: database
|
|
|
5
5
|
supports:
|
|
6
6
|
- compose
|
|
7
7
|
requires: []
|
|
8
|
-
suggests:
|
|
9
|
-
|
|
8
|
+
suggests:
|
|
9
|
+
- prometheus
|
|
10
|
+
- grafana
|
|
11
|
+
conflicts:
|
|
12
|
+
- redpanda
|
|
13
|
+
- otel-demo-python
|
|
14
|
+
- go
|
|
15
|
+
- java
|
|
16
|
+
serviceOrder: 0
|
|
17
|
+
parameters:
|
|
18
|
+
MONGODB_VERSION:
|
|
19
|
+
description: MongoDB image version tag
|
|
20
|
+
default: '8'
|
|
21
|
+
MONGODB_PORT:
|
|
22
|
+
description: Host port mapped to MongoDB (27017 inside container)
|
|
23
|
+
default: '27017'
|
|
24
|
+
MONGO_EXPRESS_PORT:
|
|
25
|
+
description: Host port mapped to Mongo Express (8081 inside container)
|
|
26
|
+
default: '8081'
|
|
27
|
+
MONGODB_USER:
|
|
28
|
+
description: MongoDB root username
|
|
29
|
+
default: root
|
|
30
|
+
MONGODB_PASSWORD:
|
|
31
|
+
description: MongoDB root password
|
|
32
|
+
default: example
|
|
33
|
+
sensitive: true
|
|
10
34
|
tags:
|
|
11
35
|
- database
|
|
12
36
|
- nosql
|
|
@@ -5,8 +5,42 @@ category: database
|
|
|
5
5
|
supports:
|
|
6
6
|
- compose
|
|
7
7
|
requires: []
|
|
8
|
-
suggests:
|
|
9
|
-
|
|
8
|
+
suggests:
|
|
9
|
+
- prometheus
|
|
10
|
+
- grafana
|
|
11
|
+
conflicts:
|
|
12
|
+
- redpanda
|
|
13
|
+
- nodejs
|
|
14
|
+
- bun
|
|
15
|
+
- go
|
|
16
|
+
- java
|
|
17
|
+
- dotnet
|
|
18
|
+
- otel-demo-nodejs
|
|
19
|
+
serviceOrder: 0
|
|
20
|
+
parameters:
|
|
21
|
+
MYSQL_VERSION:
|
|
22
|
+
description: MySQL image version tag
|
|
23
|
+
default: '8'
|
|
24
|
+
MYSQL_PORT:
|
|
25
|
+
description: Host port mapped to MySQL (3306 inside container)
|
|
26
|
+
default: '3306'
|
|
27
|
+
PHPMYADMIN_PORT:
|
|
28
|
+
description: Host port mapped to phpMyAdmin (80 inside container)
|
|
29
|
+
default: '8080'
|
|
30
|
+
MYSQL_DATABASE:
|
|
31
|
+
description: Name of the database to create
|
|
32
|
+
default: devdb
|
|
33
|
+
MYSQL_USER:
|
|
34
|
+
description: MySQL user name
|
|
35
|
+
default: devuser
|
|
36
|
+
MYSQL_PASSWORD:
|
|
37
|
+
description: MySQL user password
|
|
38
|
+
default: devpassword
|
|
39
|
+
sensitive: true
|
|
40
|
+
MYSQL_ROOT_PASSWORD:
|
|
41
|
+
description: MySQL root password
|
|
42
|
+
default: rootpassword
|
|
43
|
+
sensitive: true
|
|
10
44
|
tags:
|
|
11
45
|
- database
|
|
12
46
|
- sql
|