summaryrefslogtreecommitdiff
path: root/worker/Dockerfile
diff options
context:
space:
mode:
authorSomhairle H. Marisol <[email protected]>2026-09-17 14:32:37 +0800
committerSomhairle H. Marisol <[email protected]>2026-09-17 14:32:37 +0800
commit5c0ba37eda80d39e6ceca59bb1d5f4942f858995 (patch)
tree948723f9cedf7ccb0707fa6ee516bd30fe20fd10 /worker/Dockerfile
downloadstrategy-lab-5c0ba37eda80d39e6ceca59bb1d5f4942f858995.tar.gz
chore: establish Strategy Lab source baseline (development, not release)
Diffstat (limited to 'worker/Dockerfile')
-rw-r--r--worker/Dockerfile20
1 files changed, 20 insertions, 0 deletions
diff --git a/worker/Dockerfile b/worker/Dockerfile
new file mode 100644
index 0000000..f23bf61
--- /dev/null
+++ b/worker/Dockerfile
@@ -0,0 +1,20 @@
+# Strategy Lab Python worker image
+# - fetch: network-enabled; backtest: --network none
+# - non-root uid 10001, read-only rootfs at runtime, /output writable only
+FROM python:3.11-slim
+
+ENV PYTHONDONTWRITEBYTECODE=1 PYTHONUNBUFFERED=1 PIP_NO_CACHE_DIR=1
+
+WORKDIR /app
+
+RUN adduser --uid 10001 --disabled-password --gecos "" worker
+
+COPY requirements-worker.txt /tmp/requirements-worker.txt
+RUN pip install --no-cache-dir -r /tmp/requirements-worker.txt
+
+COPY worker /app/worker
+
+USER worker
+
+# /input request, /data dataset objects (read-only mounts); /output writable result dir
+CMD ["python", "-m", "worker.main"]