Skip to main content

Docker

Try the demo

docker run -p 8080:8080 -e MODE=collect -e FLOW=/app/demos/demo-collect.mjs walkeros/flow:latest

Output:

INFO Mode: COLLECT
INFO [runner] Loading flow from /app/demos/demo-collect.mjs
INFO [runner] Flow running
INFO [runner] Port: 8080

Test it:

curl -X POST http://localhost:8080/collect \
-H "Content-Type: application/json" \
-d '{"name":"page view","data":{"title":"Test Page"}}'

HTTP event collection

docker run -d -p 8080:8080 \
-e MODE=collect \
-e FLOW=/app/demos/demo-collect.mjs \
walkeros/flow

# Send event
curl -X POST http://localhost:8080/collect \
-H "Content-Type: application/json" \
-d '{"name":"page view","data":{"title":"Home"}}'

Built-in demos

The Docker image includes demo bundles at /app/demos/:

  • demo-collect.mjs - Server collector demo
  • demo-serve.js - Web bundle demo

Custom flow

Build your flow

Docker runtime requires pre-built bundles, not JSON configs.

Workflow:

  1. Create JSON config: flow.json
  2. Bundle with CLI: walkeros bundle flow.json --output flow.mjs
  3. Run in Docker: docker run -e MODE=collect -e FLOW=/app/flow.mjs

Build custom image

FROM walkeros/flow:latest
COPY flow.mjs /app/flow.mjs
ENV MODE=collect
ENV BUNDLE=/app/flow.mjs
docker build -t my-walker .
docker run -p 8080:8080 my-walker

Docker compose

version: '3.8'

services:
walkeros:
image: walkeros/flow:latest
environment:
MODE: collect
FLOW: /app/demos/demo-collect.mjs
ports:
- '8080:8080'
restart: unless-stopped

Environment variables

VariableDescriptionDefault
MODEOperational mode: collect or serveRequired
BUNDLEPath to pre-bundled flow fileRequired
PORTServer port8080
HOSTServer host0.0.0.0
SERVE_NAMEFilename in URL (serve mode)walker.js
SERVE_PATHURL directory (serve mode)(empty = root)

Next steps

💡 Need Professional Support?
Need professional support with your walkerOS implementation? Check out our services.