FROM python:3.14-slim WORKDIR /app # Install uv RUN pip install --no-cache-dir uv # Install dependencies (separate layer for cache efficiency) COPY pyproject.toml README.md ./ COPY steward/ steward/ RUN uv pip install --system --no-cache-dir . # Create a non-root user (UID/GID 1000) and persistent data directory RUN addgroup --gid 1000 steward \ && adduser --uid 1000 --gid 1000 --no-create-home --disabled-password --gecos "" steward \ && mkdir /data \ && chown steward:steward /data USER steward # Default path for the thread memory store — override via env or docker-compose ENV THREAD_MEMORY_PATH=/data/thread_memory.json VOLUME ["/data"] CMD ["steward"]