From fff8054eadc16a635e5a05b7a14a387206a6a254 Mon Sep 17 00:00:00 2001 From: Lev Rusanov <30170278+JDM170@users.noreply.github.com> Date: Fri, 10 Oct 2025 21:39:32 +0700 Subject: [PATCH] Distroless image, update README.md Signed-off-by: Lev Rusanov <30170278+JDM170@users.noreply.github.com> --- Dockerfile | 41 ++++++++++++++++++++++++++++++----------- README.md | 4 ++-- 2 files changed, 32 insertions(+), 13 deletions(-) diff --git a/Dockerfile b/Dockerfile index ba7885b..7b2ebfe 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,19 +1,38 @@ -# CLONE +####################################### FROM alpine:3.22 AS cloner - RUN apk add --no-cache git; \ - git clone --depth=1 https://github.com/Ground-Zerro/DomainMapper.git + git clone https://github.com/Ground-Zerro/DomainMapper.git +COPY files/custom-dns-list.txt /DomainMapper/custom-dns-list.txt +COPY files/config.ini /DomainMapper/config.ini -# RUN -FROM python:3.12-alpine -COPY --from=cloner /DomainMapper /usr/src/app +####################################### +FROM python:3.12-alpine AS pydeps +WORKDIR /app +COPY --from=cloner /DomainMapper/requirements.txt . +COPY --from=ghcr.io/astral-sh/uv:latest /uv /bin/ +RUN uv pip install --target /python -r requirements.txt -WORKDIR /usr/src/app -COPY files/custom-dns-list.txt custom-dns-list.txt -COPY files/config.ini config.ini +####################################### +#FROM gcr.io/distroless/python3-debian12:debug +FROM gcr.io/distroless/python3-debian12 +#FROM al3xos/python-distroless:3.13-debian12 -RUN pip install --no-cache-dir -r requirements.txt +WORKDIR /app -CMD ["python", "main.py"] +# Ensure Python finds vendored site-packages and unbuffered output +ENV PYTHONPATH=/python +ENV PYTHONUNBUFFERED=1 +ENV PYTHONUTF8=1 +ENV LANG=C.UTF-8 +ENV LC_ALL=C.UTF-8 + +# Copy application code +COPY --from=cloner --chown=65532:65532 /DomainMapper /app + +# Copy vendored Python dependencies +COPY --from=pydeps --chown=65532:65532 /python /python + +# No shell or package manager available in distroless +ENTRYPOINT ["python3", "main.py"] diff --git a/README.md b/README.md index 4dc90eb..f6d78bd 100644 --- a/README.md +++ b/README.md @@ -9,14 +9,14 @@ docker build -t jdm17/domainmapper . Запуск (для автоматического формирования списка): ``` -docker run -it --name docker-domainmapper --rm -v "$(pwd)/result.txt:/usr/src/app/domain-ip-resolve.txt" jdm17/domainmapper:latest +docker run -it --rm --name docker-domainmapper -v "$(pwd)/result.txt:/app/domain-ip-resolve.txt" jdm17/domainmapper:latest ``` --- Запуск оболочки: ``` -docker run -it --name docker-domainmapper --rm --entrypoint="/bin/sh" -v "$(pwd)/result.txt:/usr/src/app/domain-ip-resolve.txt" jdm17/domainmapper:latest +docker run -it --rm --name docker-domainmapper --entrypoint=sh -v "$(pwd)/result.txt:/app/domain-ip-resolve.txt" jdm17/domainmapper:latest ``` ---