From 2ee575aff4f35b5a0ecbe8f5734634c5dbac16d9 Mon Sep 17 00:00:00 2001 From: WorldTeacher Date: Tue, 25 Nov 2025 08:50:07 +0100 Subject: [PATCH] test: inspired by other Dockerfile --- Dockerfile | 50 +++++++------------------------------------------- 1 file changed, 7 insertions(+), 43 deletions(-) diff --git a/Dockerfile b/Dockerfile index 779f304..0245f70 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,49 +1,13 @@ -FROM python:3.13-slim AS builder +FROM python:3.13.9-slim -# Prevent Python from writing .pyc files and enable unbuffered stdout/stderr -ENV PYTHONDONTWRITEBYTECODE=1 \ - PYTHONUNBUFFERED=1 \ - PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1 +RUN apk update +RUN apk upgrade WORKDIR /app -# Install build deps required to build wheels and tools needed to fetch uv -RUN apt-get update \ - && apt-get install -y --no-install-recommends build-essential gcc curl ca-certificates \ - && rm -rf /var/lib/apt/lists/* +COPY requirements.txt . +RUN pip install --no-cache-dir -r requirements.txt -# Install uv into this stage by copying official uv binaries from the uv image -COPY --from=ghcr.io/astral-sh/uv:python3.13-trixie-slim /uv /uvx /bin/ +COPY . . -# Copy only metadata first so dependency installs can be cached -COPY pyproject.toml ./ - -# Use uv to resolve & install the project's dependencies (no project source yet) -# This creates a .venv containing all dependencies which we move to /install -RUN uv sync --no-install-project --no-editable \ - && mv .venv /install - -# Copy application source (only used to include app files in final image) -COPY . /app - -FROM python:3.13-slim - -ENV PYTHONDONTWRITEBYTECODE=1 \ - PYTHONUNBUFFERED=1 \ - API_PORT=8001 - -WORKDIR /app - -# Bring uv into the final image so we can run the app with it -COPY --from=ghcr.io/astral-sh/uv:python3.13-trixie-slim /uv /uvx /bin/ - -# Copy the prepared environment from the builder and the application -COPY --from=builder /install /app/.venv -COPY --from=builder /app /app - -ENV PATH="/app/.venv/bin:$PATH" - -EXPOSE ${API_PORT} - -# Use uv to run the app inside the synced environment -CMD ["uv", "run", "python", "api_service.py"] +ENTRYPOINT [ "python", "api_service.py" ] \ No newline at end of file -- 2.49.1