Docker Quick Start
Try the Demo
docker run -e MODE=collect -e FLOW=/app/flows/demo.json walkeros/docker:latest
Output:
📦 Downloading packages...
🚀 Collect mode: Starting event collector...
✅ Collector running
[Demo Output] {
"name": "page view",
"data.title": "Home Page",
"data.path": "/",
"timestamp": 1234567890000
}
The demo is self-contained:
- Downloads demo packages from npm
- Emits test events
- Logs output
- No external APIs needed
HTTP Event Collection
docker run -d -p 8080:8080 \
-e MODE=collect \
-e FLOW=/app/flows/collect-console.json \
walkeros/docker
# Send event
curl -X POST http://localhost:8080/collect \
-H "Content-Type: application/json" \
-d '{"event":"page view","data":{"title":"Home"}}'
Built-in Flows
The Docker image includes flows at /app/flows/:
demo.json- Demo packagescollect-console.json- HTTP → consolebundle-web.json- Web bundleserve.json- Static server
Custom Flow
Build Custom Image
FROM walkeros/docker:latest
COPY my-flow.json /app/flows/custom.json
docker build -t my-walker .
docker run -e MODE=collect -e FLOW=/app/flows/custom.json my-walker
Docker Compose
version: '3.8'
services:
walkeros:
image: walkeros/docker:latest
environment:
MODE: collect
FLOW: /app/flows/demo.json
restart: unless-stopped
With Port Mapping
services:
walkeros-collect:
image: walkeros/docker:latest
environment:
MODE: collect
FLOW: /app/flows/collect-console.json
ports:
- "8080:8080"
restart: unless-stopped
Flow Configuration
Flow files use the NEW format with separate flow and build sections:
{
"flow": {
"platform": "server",
"sources": {
"http": {
"code": "sourceExpress",
"config": {
"settings": {
"path": "/collect",
"port": 8080,
"cors": true
}
}
}
},
"destinations": {
"demo": {
"code": "destinationDemo",
"config": {
"settings": {
"name": "Console Output",
"values": ["name", "data", "timestamp"]
}
}
}
},
"collector": { "run": true }
},
"build": {
"packages": {
"@walkeros/collector": {
"version": "latest",
"imports": ["startFlow"]
},
"@walkeros/server-source-express": {
"version": "latest",
"imports": ["sourceExpress"]
},
"@walkeros/destination-demo": {
"version": "latest",
"imports": ["destinationDemo"]
}
},
"code": "// Custom initialization\n",
"template": "/app/packages/cli/templates/base.hbs",
"tempDir": "/tmp"
}
}
Configuration Structure
Flow section (runtime configuration):
- platform: "web" or "server"
- sources: Event sources with
codefield referencing imports - destinations: Event destinations with
codefield referencing imports - collector: Processing settings
Build section (build-time configuration):
- packages: npm packages to download dynamically with version and imports
- code: Custom initialization code (required, can be a comment)
- template: Path to Handlebars template for bundle generation
- tempDir: Temporary directory for build artifacts
Next Steps
💡 Need Professional Support?
Need professional support with your walkerOS implementation? Check out our services.