Reproducible Python 3.12-slim container that installs the project editable with dev deps. Adds pytest-asyncio to dev deps so async tests run cleanly inside the container (host had it installed out-of-band). scripts/docker-test.sh provides build, test, ask, replay, and shell subcommands. The ask/replay/shell commands mount ~/secrets read-only and ~/.marchwarden read-write so end-to-end runs persist traces back to the host. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
24 lines
602 B
Docker
24 lines
602 B
Docker
FROM python:3.12-slim
|
|
|
|
ENV PYTHONDONTWRITEBYTECODE=1 \
|
|
PYTHONUNBUFFERED=1 \
|
|
PIP_DISABLE_PIP_VERSION_CHECK=1 \
|
|
PIP_NO_CACHE_DIR=1
|
|
|
|
WORKDIR /app
|
|
|
|
# Install build deps separately so the layer caches when source changes.
|
|
COPY pyproject.toml README.md ./
|
|
RUN pip install --upgrade pip
|
|
|
|
# Copy the project and install editable with dev extras.
|
|
COPY cli ./cli
|
|
COPY researchers ./researchers
|
|
COPY orchestrator ./orchestrator
|
|
COPY tests ./tests
|
|
RUN pip install -e ".[dev]"
|
|
|
|
# Trace files land here; mount a volume to persist across runs.
|
|
RUN mkdir -p /root/.marchwarden/traces
|
|
|
|
CMD ["pytest", "-q"]
|