"description":"Official Alpine Linux 3.18 Docker image (5.3 MB compressed). musl-libc + BusyBox base exposing: wget, curl, awk, sed, grep, tar, gzip, openssl, jq (via apk). Zero extraneous packages; deterministic sha256 digest per tag. Used in workflows as a lightweight sidecar for tasks that do not justify a heavier runtime: downloading camera frames via wget, renaming and archiving intermediary files, running one-shot POSIX shell scripts, performing pre-run health-check assertions, or post-processing step cleanup. Starts in under 80 ms; memory footprint < 4 MB at idle.",
"short_description":"Official Alpine 3.18 — minimal shell environment for scripting sidecars",
"description":"Official Eclipse Mosquitto 2.0.18 Docker image — reference MQTT broker from the Eclipse Foundation. Implements MQTT v5.0, v3.1.1 and v3.1 over TCP (port 1883), WebSocket (port 9001), and optional TLS (port 8883) with X.509 mutual auth. Supports password-file authentication, ACL-based topic access control, QoS 0/1/2 delivery guarantees, persistent sessions, retained messages, shared subscriptions (MQTT 5) and bridge mode for multi-broker topologies. Used as the terminal publish step in the sensor-data-collector workflow: reads vehicle-metadata JSON produced by the upstream Python analysis stage from shared storage and fans it out to subscribed edge consumers on the sensors/camera/vehicle topic.",
"short_description":"Official Eclipse Mosquitto 2.0 — MQTT v5/v3 broker with QoS and ACL support",
"description":"Official Python 3.11-slim Docker image (Debian Bookworm base, 45 MB compressed). Provides CPython 3.11 runtime with pip; scientific stack installable at launch: NumPy 1.26, Pillow 10, OpenCV-headless 4.9, scikit-learn 1.4, pandas 2.2, requests 2.31. Shared by peer-1 (opencloud-demo-1). In the sensor-data-collector workflow: receives a camera frame path via ALPINE_FRAME_FILE and storage mount via IRT_LOCAL_FILE_STORAGE_SOURCE, runs vehicle object detection with OpenCV contour detection + background subtraction, extracts bounding boxes and plate candidates, serialises results as vehicle_meta.json to shared storage for the downstream Mosquitto publish step.",
"short_description":"Official Python 3.11-slim — frame analysis and sensor data processing runtime (shared by peer-1)",
"description":"Official Nginx 1.25-alpine Docker image (9 MB compressed) — high-performance asynchronous HTTP/1.1 and HTTP/2 server and reverse proxy. Event-driven architecture handles 50 000+ concurrent connections per worker process. In the api-monitoring-stack workflow it acts as the terminal presentation layer: reads Redis-cached API status JSON objects from MinIO storage and serves them on port 80 as a structured HTTP endpoint consumed by the OpenCloud operator dashboard. Configuration injected via envsubst at container startup. Features: gzip compression (level 6), custom JSON access logging, CORS headers, configurable cache-control directives, graceful hot-reload via SIGHUP without dropping connections. Owned by opencloud-demo-2.",
"short_description":"Official Nginx 1.25-alpine — HTTP frontend and static result endpoint (peer-2)",
"description":"Official Redis 7-alpine Docker image (14 MB compressed) — in-memory key-value store with sub-millisecond read latency. Supports strings, hashes, lists, sorted sets and streams natively. In the api-monitoring-stack workflow, ingests structured API-status objects (status-code distribution per endpoint, p50/p95 latency percentiles) produced by the CURL fetch step, stores them under a configurable CACHE_KEY with a 300-second TTL (default) to decouple the slow log-fetching stage from the fast Nginx serving stage. Configured in ephemeral mode (--save '' --appendonly no) to eliminate disk I/O and maximise throughput. Pub/Sub channel api_status_updates can be subscribed to by external consumers for real-time event streaming. Owned by opencloud-demo-2.",
"short_description":"Official Redis 7-alpine — TTL-based API status cache with pub/sub support (peer-2)",