FROM python:3.13-slim AS base ENV PYTHONDONTWRITEBYTECODE=1 \ PYTHONUNBUFFERED=1 \ PIP_NO_CACHE_DIR=1 \ PIP_DISABLE_PIP_VERSION_CHECK=1 \ DB_PATH=/data/whattodo.db RUN useradd --uid 1000 --create-home app WORKDIR /srv COPY requirements.txt . RUN pip install -r requirements.txt COPY app ./app # `docker compose -f docker-compose.build.yaml run --rm test` FROM base AS test COPY requirements-dev.txt . RUN pip install -r requirements-dev.txt COPY tests ./tests USER app CMD ["python", "-m", "pytest", "-q", "-p", "no:cacheprovider", "tests"] FROM base AS runtime COPY docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh RUN chmod +x /usr/local/bin/docker-entrypoint.sh EXPOSE 8000 ENTRYPOINT ["docker-entrypoint.sh"] CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8000"]