Skip to content

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:

bash
cd /opt/databuff-ai-apm
./start.sh    # First run initializes Doris and imports schema
./stop.sh     # Stops all containers

Restart a single service:

bash
docker compose restart ai-apm-web
docker compose restart ai-apm-ingest

start.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

ContainerComponentHost portsNotes
ai-apm-webWeb platform27403UI and APIs
ai-apm-ingestIngest4317 / 4318 / 11800OTLP gRPC / HTTP; SkyWalking Agent gRPC
ai-apm-doris-feDoris FE8030 / 9030HTTP / MySQL protocol
ai-apm-doris-beDoris BE8040BE HTTP

Health Checks and Default Credentials

ServiceProbe URL
Ingesthttp://127.0.0.1:4318/health
Webhttp://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 with APM_SECURITY_SEED_USERNAME)
  • Password: Databuff@123 (override with APM_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

bash
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-be

If readiness times out, start.sh suggests checking ingest / web logs.

Common Issues

SymptomAction
Doris fails / BE OOMEnsure enough host memory; FE -Xmx is patched to 1200m in compose
Low vm.max_map_countstart.sh tries 2000000; persist via sysctl on Linux
Port in useChange ports in docker-compose.yml or free 27403 / 4317 / 4318 / 11800
Empty service listPoint Agent/SDK to 4317/4318; see OTLP Ingestion
No alerts after creating rulesEnsure services have metrics; evaluation runs every minute; verify rule scope matches services
Reset schemaRun ./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*).

GateScriptCoversPrimary evidence / prerequisites
Adeploy/test/doris-failover-e2e.shInstall-time Doris failure → Web troubleshooting / bootstrap → recoveryInstall-failure e2e PASS
Bdeploy/test/doris-runtime-failover-e2e.shRuntime Doris outage → ops expert chat recoveryPrimary 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
Cdeploy/test/run-tests.shAPI regressionReport PASS (usually needs demo telemetry)

Release checklist (copy as-is):

text
□ 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
bash
# 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.sh

Post-upgrade smoke (verify-upgrade.sh in deploy/docker/UPGRADE.md) does not replace gates A/B/C.

See Also