FROM python:3.14-slim ENV PYTHONUNBUFFERED=1 \ PATH="/app/.venv/bin:$PATH" \ DATA_DIR="/data" WORKDIR /app RUN pip install uv COPY pyproject.toml uv.lock ./ RUN uv sync --frozen --no-dev COPY src . EXPOSE 80 HEALTHCHECK --start-period=10s --start-interval=1s \ CMD ["python", "-c", "import urllib.request; urllib.request.urlopen('http://127.0.0.1:80/health', timeout=3)"] CMD ["uvicorn", "gibby.app:app", "--host", "0.0.0.0", "--port", "80", "--no-access-log"]