From e0a2289097d01651223d95db0d2e4fb706d9d75a Mon Sep 17 00:00:00 2001 From: hacka0wi <124970567+hacka0wi@users.noreply.github.com> Date: Fri, 8 May 2026 00:13:42 +0700 Subject: [PATCH] fix(engine-image): add curl for Shell scheduler tasks (Closes #12) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Shell nodes commonly call HTTP APIs via curl (webhooks, pipeline executor endpoints, ad-hoc smoke tests). Without it, every shell flow that touches HTTP needs to either install curl at runtime or fall back to wget — neither is a good first impression. curl adds ~1.4 MiB to the image (alpine package), which is below the noise threshold of the existing Python + Node + Docker CLI runtime bundle (~80 MiB combined). --- apps/runloop-engine/Dockerfile | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/apps/runloop-engine/Dockerfile b/apps/runloop-engine/Dockerfile index 7c227f1..acc8375 100644 --- a/apps/runloop-engine/Dockerfile +++ b/apps/runloop-engine/Dockerfile @@ -23,9 +23,13 @@ FROM alpine:latest # (see internal/executor — Python/NodeJS/Docker spawn the respective binary # in $PATH; without these the node fails immediately with "executable not # found"). docker-cli only — the daemon must be reached via mounted socket. +# curl is included so Shell scheduler tasks can call internal/external HTTP +# endpoints (e.g. webhook fan-out, pipeline executor APIs) without bundling +# their own binary — it's the most common dependency in user shell scripts. RUN apk --no-cache add \ ca-certificates \ bash \ + curl \ python3 \ py3-pip \ nodejs \