2026-03-16 11:01:50 +00:00
|
|
|
# syntax=docker/dockerfile:1.5
|
2026-04-23 14:31:21 +02:00
|
|
|
FROM ghcr.io/astral-sh/uv:python3.13-bookworm-slim@sha256:531f855bda2c73cd6ef67d56b733b357cea384185b3022bd09f05e002cd144ca
|
2026-03-16 11:01:50 +00:00
|
|
|
|
2026-04-20 18:58:33 +01:00
|
|
|
ARG TASK_VERSION=3.49.1
|
|
|
|
|
RUN apt-get update \
|
|
|
|
|
&& apt-get install -y --no-install-recommends curl ca-certificates \
|
|
|
|
|
&& ARCH=$(dpkg --print-architecture) \
|
|
|
|
|
&& curl -fsSL "https://github.com/go-task/task/releases/download/v${TASK_VERSION}/task_${TASK_VERSION}_linux_${ARCH}.deb" -o /tmp/task.deb \
|
|
|
|
|
&& dpkg -i /tmp/task.deb \
|
|
|
|
|
&& rm /tmp/task.deb \
|
|
|
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
|
|
2026-06-08 18:38:00 +01:00
|
|
|
# Source under /app/engine/ to match root Taskfile's `includes.engine.dir: engine`.
|
2026-06-08 18:02:02 +01:00
|
|
|
WORKDIR /app/engine
|
2026-03-16 11:01:50 +00:00
|
|
|
|
2026-06-08 18:02:02 +01:00
|
|
|
COPY pyproject.toml uv.lock .env ./
|
2026-04-20 18:58:33 +01:00
|
|
|
COPY scripts/ ./scripts/
|
2026-03-16 11:01:50 +00:00
|
|
|
RUN --mount=type=cache,target=/root/.cache/uv \
|
|
|
|
|
uv sync --frozen --no-dev
|
|
|
|
|
|
|
|
|
|
COPY src/ ./src/
|
|
|
|
|
|
2026-06-08 18:02:02 +01:00
|
|
|
WORKDIR /app
|
|
|
|
|
COPY Taskfile.yml ./
|
|
|
|
|
COPY .taskfiles/ ./.taskfiles/
|
|
|
|
|
|
|
|
|
|
ENV PATH="/app/engine/.venv/bin:$PATH"
|
2026-03-16 11:01:50 +00:00
|
|
|
ENV PYTHONUNBUFFERED=1
|
2026-06-11 16:31:35 +01:00
|
|
|
ENV STIRLING_ENGINE_WORKERS=4
|
2026-03-16 11:01:50 +00:00
|
|
|
|
2026-03-26 10:35:47 +00:00
|
|
|
EXPOSE 5001
|
|
|
|
|
|
2026-04-20 18:58:33 +01:00
|
|
|
CMD ["task", "engine:run"]
|