Docker Operations Reference
Directory layout, start/stop, ports, health checks, and troubleshooting after a one-line install. For the quick install path, see Docker Installation.
Install Directory
Default path: /opt/databuff-ai-apm. Override with APM_INSTALL_DIR (supported by the install script and offline install.sh).
/opt/databuff-ai-apm/
├── docker-compose.yml # Doris FE/BE + ingest + web
├── start.sh / stop.sh # Recommended start/stop
├── env.sh # Image versions
├── data/ # Doris persistence (fe-meta, be-storage)
├── scripts/ # init-doris, pull-images, runtime helpers
└── sql/ # databuff.sql (imported on first start)Start, Stop, and Restart
Recommended from the install directory:
cd /opt/databuff-ai-apm
./start.sh # First run initializes Doris and imports schema
./stop.sh # Stops all containersRestart a single service:
docker compose restart ai-apm-web
docker compose restart ai-apm-ingeststart.sh only starts services: checks vm.max_map_count, waits for Doris, then starts ingest and web and probes health endpoints. Image loading is handled by install.sh / update.sh or by running scripts/pull-images.sh manually.
Services and Ports
| Container | Component | Host ports | Notes |
|---|---|---|---|
ai-apm-web | Web platform | 27403 | UI and APIs |
ai-apm-ingest | Ingest | 4317 / 4318 / 11800 | OTLP gRPC / HTTP; SkyWalking Agent gRPC |
ai-apm-doris-fe | Doris FE | 8030 / 9030 | HTTP / MySQL protocol |
ai-apm-doris-be | Doris BE | 8040 | BE HTTP |
Health Checks and Default Credentials
| Service | Probe URL |
|---|---|
| Ingest | http://127.0.0.1:4318/health |
| Web | http://127.0.0.1:27403/health |
After install or start.sh, the terminal prints the Web URL and the effective login (defaults if unchanged):
- Username:
admin(override withAPM_SECURITY_SEED_USERNAME) - Password:
Databuff@123(override withAPM_SECURITY_SEED_PASSWORD)
To change login credentials, Doris connection credentials, or Ingest task settings, see Parameter Configuration. Summaries read the running Web container env, so a changed password is not still printed as the default.
Logs
cd /opt/databuff-ai-apm
docker compose logs -f ai-apm-ingest ai-apm-web
docker compose logs ai-apm-doris-fe ai-apm-doris-beIf readiness times out, start.sh suggests checking ingest / web logs.
Common Issues
| Symptom | Action |
|---|---|
| Doris fails / BE OOM | Ensure enough host memory; FE -Xmx is patched to 1200m in compose |
Low vm.max_map_count | start.sh tries 2000000; persist via sysctl on Linux |
| Port in use | Change ports in docker-compose.yml or free 27403 / 4317 / 4318 / 11800 |
| Empty service list | Point Agent/SDK to 4317/4318; see OTLP Ingestion |
| No alerts after creating rules | Ensure services have metrics; evaluation runs every minute; verify rule scope matches services |
| Reset schema | Run ./reset-table.sh in the install dir (drops business tables — use with care) |
Data lives under data/. Stopping services does not remove data; see Upgrade and Uninstall for full removal.
Release gate / 发布验收
Before an open-source release, run all three gates from the repo root (complementary — none substitutes for another). Checklist detail: Epic deliverable self-ops-release-test-matrix.html (G-OPS*).
| Gate | Script | Covers | Primary evidence / prerequisites |
|---|---|---|---|
| A | deploy/test/doris-failover-e2e.sh | Install-time Doris failure → Web troubleshooting / bootstrap → recovery | Install-failure e2e PASS |
| B | deploy/test/doris-runtime-failover-e2e.sh | Runtime Doris outage → ops expert chat recovery | Primary evidence = ops session (chat/submit + messages/tools); /health is auxiliary. Requires LLM API Key. Do not docker start FE/BE in-script to fake expert recovery. SKIP_OPS_EXPERT=1 is not a valid release gate |
| C | deploy/test/run-tests.sh | API regression | Report PASS (usually needs demo telemetry) |
Release checklist (copy as-is):
□ A ./deploy/test/doris-failover-e2e.sh
□ B ./deploy/test/doris-runtime-failover-e2e.sh
(SKIP_OPS_EXPERT unset; session evidence default /tmp/doris-runtime-ops-evidence.json; G-OPS0–G-OPS3)
□ C ./deploy/test/run-tests.sh# A — install-time failure (see script header; offline often needs BUNDLE_ROOT / APM_INSTALL_DIR)
./deploy/test/doris-failover-e2e.sh
# B — runtime outage → ops expert (stack up + LLM Key configured in Web)
./deploy/test/doris-runtime-failover-e2e.sh
# C — API regression
./deploy/test/run-tests.shPost-upgrade smoke (verify-upgrade.sh in deploy/docker/UPGRADE.md) does not replace gates A/B/C.