diff --git a/Containerfile b/Containerfile index e627bd5..42a6279 100644 --- a/Containerfile +++ b/Containerfile @@ -17,6 +17,8 @@ RUN --mount=type=bind,source=os-packages.txt,target=/tmp/os-packages.txt \ dnf -y clean all && \ rm -rf /var/cache/dnf +RUN /usr/bin/fix-permissions /opt/app-root/src/.cache + ENV TESSDATA_PREFIX=/usr/share/tesseract/tessdata/ ################################################################################################### @@ -44,7 +46,7 @@ RUN --mount=from=ghcr.io/astral-sh/uv:0.6.1,source=/uv,target=/bin/uv \ --mount=type=cache,target=/opt/app-root/src/.cache/uv,uid=1001 \ --mount=type=bind,source=uv.lock,target=uv.lock \ --mount=type=bind,source=pyproject.toml,target=pyproject.toml \ - uv sync --frozen --no-install-project --no-dev --all-extras ${UV_SYNC_EXTRA_ARGS} + umask 002 && uv sync --frozen --no-install-project --no-dev --all-extras ${UV_SYNC_EXTRA_ARGS} ARG MODELS_LIST="layout tableformer picture_classifier easyocr" @@ -52,15 +54,15 @@ RUN echo "Downloading models..." && \ HF_HUB_DOWNLOAD_TIMEOUT="90" \ HF_HUB_ETAG_TIMEOUT="90" \ docling-tools models download -o "${DOCLING_SERVE_ARTIFACTS_PATH}" ${MODELS_LIST} && \ - chown -R 1001:0 /opt/app-root/src/.cache && \ - chmod -R g=u /opt/app-root/src/.cache + chown -R 1001:0 ${DOCLING_SERVE_ARTIFACTS_PATH} && \ + chmod -R g=u ${DOCLING_SERVE_ARTIFACTS_PATH} COPY --chown=1001:0 ./docling_serve ./docling_serve RUN --mount=from=ghcr.io/astral-sh/uv:0.6.1,source=/uv,target=/bin/uv \ --mount=type=cache,target=/opt/app-root/src/.cache/uv,uid=1001 \ --mount=type=bind,source=uv.lock,target=uv.lock \ --mount=type=bind,source=pyproject.toml,target=pyproject.toml \ - uv sync --frozen --no-dev --all-extras ${UV_SYNC_EXTRA_ARGS} + umask 002 && uv sync --frozen --no-dev --all-extras ${UV_SYNC_EXTRA_ARGS} EXPOSE 5001 diff --git a/Makefile b/Makefile index a080f92..bb995fb 100644 --- a/Makefile +++ b/Makefile @@ -17,6 +17,7 @@ else endif TAG=$(shell git rev-parse HEAD) +BRANCH_TAG=$(shell git rev-parse --abbrev-ref HEAD) action-lint-file: $(CMD_PREFIX) touch .action-lint @@ -28,22 +29,22 @@ md-lint-file: docling-serve-image: Containerfile $(ECHO_PREFIX) printf " %-12s Containerfile\n" "[docling-serve]" $(CMD_PREFIX) docker build --load --build-arg "UV_SYNC_EXTRA_ARGS=--no-extra cu124 --no-extra cpu" -f Containerfile -t ghcr.io/docling-project/docling-serve:$(TAG) . - $(CMD_PREFIX) docker tag ghcr.io/docling-project/docling-serve:$(TAG) ghcr.io/docling-project/docling-serve:main - $(CMD_PREFIX) docker tag ghcr.io/docling-project/docling-serve:$(TAG) quay.io/docling-project/docling-serve:main + $(CMD_PREFIX) docker tag ghcr.io/docling-project/docling-serve:$(TAG) ghcr.io/docling-project/docling-serve:$(BRANCH_TAG) + $(CMD_PREFIX) docker tag ghcr.io/docling-project/docling-serve:$(TAG) quay.io/docling-project/docling-serve:$(BRANCH_TAG) .PHONY: docling-serve-cpu-image docling-serve-cpu-image: Containerfile ## Build docling-serve "cpu only" container image $(ECHO_PREFIX) printf " %-12s Containerfile\n" "[docling-serve CPU]" $(CMD_PREFIX) docker build --load --build-arg "UV_SYNC_EXTRA_ARGS=--no-extra cu124" -f Containerfile -t ghcr.io/docling-project/docling-serve-cpu:$(TAG) . - $(CMD_PREFIX) docker tag ghcr.io/docling-project/docling-serve-cpu:$(TAG) ghcr.io/docling-project/docling-serve-cpu:main - $(CMD_PREFIX) docker tag ghcr.io/docling-project/docling-serve-cpu:$(TAG) quay.io/docling-project/docling-serve-cpu:main + $(CMD_PREFIX) docker tag ghcr.io/docling-project/docling-serve-cpu:$(TAG) ghcr.io/docling-project/docling-serve-cpu:$(BRANCH_TAG) + $(CMD_PREFIX) docker tag ghcr.io/docling-project/docling-serve-cpu:$(TAG) quay.io/docling-project/docling-serve-cpu:$(BRANCH_TAG) .PHONY: docling-serve-cu124-image docling-serve-cu124-image: Containerfile ## Build docling-serve container image with GPU support $(ECHO_PREFIX) printf " %-12s Containerfile\n" "[docling-serve with Cuda 12.4]" $(CMD_PREFIX) docker build --load --build-arg "UV_SYNC_EXTRA_ARGS=--no-extra cpu" -f Containerfile --platform linux/amd64 -t ghcr.io/docling-project/docling-serve-cu124:$(TAG) . - $(CMD_PREFIX) docker tag ghcr.io/docling-project/docling-serve-cu124:$(TAG) ghcr.io/docling-project/docling-serve-cu124:main - $(CMD_PREFIX) docker tag ghcr.io/docling-project/docling-serve-cu124:$(TAG) quay.io/docling-project/docling-serve-cu124:main + $(CMD_PREFIX) docker tag ghcr.io/docling-project/docling-serve-cu124:$(TAG) ghcr.io/docling-project/docling-serve-cu124:$(BRANCH_TAG) + $(CMD_PREFIX) docker tag ghcr.io/docling-project/docling-serve-cu124:$(TAG) quay.io/docling-project/docling-serve-cu124:$(BRANCH_TAG) .PHONY: action-lint action-lint: .action-lint ## Lint GitHub Action workflows