From d9651f7065cf8d78c1948d8c209f223fd2ed0dcb Mon Sep 17 00:00:00 2001 From: Anthony Stirling Date: Mon, 8 Jun 2026 18:02:02 +0100 Subject: [PATCH] fix(engine): match Dockerfile layout to root Taskfile dir: engine --- engine/Dockerfile | 31 +++++++++++++++++++++++++++---- 1 file changed, 27 insertions(+), 4 deletions(-) diff --git a/engine/Dockerfile b/engine/Dockerfile index c9c8d2239..2f826120b 100644 --- a/engine/Dockerfile +++ b/engine/Dockerfile @@ -10,17 +10,40 @@ RUN apt-get update \ && rm /tmp/task.deb \ && rm -rf /var/lib/apt/lists/* -WORKDIR /app +# The OSS repo's root Taskfile.yml expects engine tasks to run from ./engine/ +# (configured via `includes.engine.dir: engine`). The OSS-clone-build workflow +# copies the root Taskfile.yml + .taskfiles/ into the engine build context, then +# this Dockerfile copies them into the image. To match the Taskfile's expectations +# at runtime, engine source must live at /app/engine/ — not flattened to /app/ — +# so `task engine:run` can chdir there successfully and uv resolves +# scripts/setup_env.py to /app/engine/scripts/setup_env.py. +# +# Layout: +# /app/Taskfile.yml ← workflow-copied root Taskfile +# /app/.taskfiles/ ← workflow-copied .taskfiles +# /app/engine/pyproject.toml +# /app/engine/uv.lock +# /app/engine/.env +# /app/engine/scripts/ ← scripts/setup_env.py here +# /app/engine/src/ ← uvicorn entrypoint dir +# /app/engine/.venv/ ← uv-managed venv +WORKDIR /app/engine -COPY pyproject.toml uv.lock Taskfile.yml .env ./ -COPY .taskfiles/ ./.taskfiles/ +COPY pyproject.toml uv.lock .env ./ COPY scripts/ ./scripts/ RUN --mount=type=cache,target=/root/.cache/uv \ uv sync --frozen --no-dev COPY src/ ./src/ -ENV PATH="/app/.venv/bin:$PATH" +# Task definitions live at /app/ — root Taskfile + included .taskfiles — because +# the root Taskfile's `includes.engine.dir: engine` is resolved relative to the +# Taskfile's own location, so it must sit one level above engine/. +WORKDIR /app +COPY Taskfile.yml ./ +COPY .taskfiles/ ./.taskfiles/ + +ENV PATH="/app/engine/.venv/bin:$PATH" ENV PYTHONUNBUFFERED=1 EXPOSE 5001