From 8ba32b2d5ea25b841e71c5c78c147604f774804f Mon Sep 17 00:00:00 2001 From: Antonis Kalipetis Date: Thu, 11 Sep 2025 17:04:34 +0300 Subject: [PATCH 1/2] feat(dockerfile): improve Dockerfile structure * merge `ENV` definitions in a single layer * remove `VOLUME` definition to avoid leftover volumes and fix crashes * use `COPY --link` when copying uv binaries --- Dockerfile | 33 +++++++++++++-------------------- 1 file changed, 13 insertions(+), 20 deletions(-) diff --git a/Dockerfile b/Dockerfile index 3c38a91..821aebb 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,30 +1,23 @@ -ARG PYTHON_VERSION=3.13 -ARG VARIANT=bookworm ARG UV_VERSION=0.8.14 - FROM ghcr.io/astral-sh/uv:${UV_VERSION} AS uv +ARG PYTHON_VERSION=3.13 +ARG VARIANT=bookworm FROM python:${PYTHON_VERSION}-${VARIANT} AS base -COPY --from=uv /uv /uvx /usr/local/bin/ +COPY --link --from=uv /uv /uvx /usr/local/bin/ ARG UV_PROJECT_ENVIRONMENT=/opt/uv/venv - -ENV PATH=${UV_PROJECT_ENVIRONMENT}/bin:$PATH - -ENV PYTHONUNBUFFERED=1 - -ENV UV_COMPILE_BYTECODE=1 -ENV UV_LINK_MODE=copy -ENV UV_NO_EDITABLE=1 -ENV UV_NO_INSTALL_PROJECT=1 -ENV UV_PROJECT_ENVIRONMENT=${UV_PROJECT_ENVIRONMENT} -ENV UV_PYTHON_DOWNLOADS=never - -ENV VIRTUAL_ENV=${UV_PROJECT_ENVIRONMENT} -ENV VIRTUAL_ENV_PROMPT='' +ENV PATH=${UV_PROJECT_ENVIRONMENT}/bin:$PATH \ + PYTHONUNBUFFERED=1 \ + UV_COMPILE_BYTECODE=1 \ + UV_LINK_MODE=copy \ + UV_NO_EDITABLE=1 \ + UV_NO_INSTALL_PROJECT=1 \ + UV_PROJECT_ENVIRONMENT=${UV_PROJECT_ENVIRONMENT} \ + UV_PYTHON_DOWNLOADS=never \ + VIRTUAL_ENV=${UV_PROJECT_ENVIRONMENT} \ + VIRTUAL_ENV_PROMPT='' RUN mkdir -p ${UV_PROJECT_ENVIRONMENT} -VOLUME [ ${UV_PROJECT_ENVIRONMENT} ] - WORKDIR /usr/src/app From 84ff6d3125eca5f0658a72e29b03b902908ddbf0 Mon Sep 17 00:00:00 2001 From: Antonis Kalipetis Date: Thu, 11 Sep 2025 17:12:50 +0300 Subject: [PATCH 2/2] fix(dockerfile): ARG definition for image pulling --- Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 821aebb..a0aed35 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,8 +1,8 @@ ARG UV_VERSION=0.8.14 -FROM ghcr.io/astral-sh/uv:${UV_VERSION} AS uv - ARG PYTHON_VERSION=3.13 ARG VARIANT=bookworm +FROM ghcr.io/astral-sh/uv:${UV_VERSION} AS uv + FROM python:${PYTHON_VERSION}-${VARIANT} AS base COPY --link --from=uv /uv /uvx /usr/local/bin/