From eb6b86160a14093d05dbc36f85ccab13bd29684f Mon Sep 17 00:00:00 2001 From: Ludy87 Date: Thu, 13 Nov 2025 11:26:08 +0100 Subject: [PATCH] Update Dockerfile to Alpine 3.22 and add Calibre Bump base image and community repository to Alpine 3.22. Add Calibre and related package fixes to the installed packages. Improve comments and update package installation commands for clarity. --- .github/workflows/build.yml | 3 +-- Dockerfile.fat | 21 ++++++++++++--------- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 5ab5704d8..02cba7a86 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -267,8 +267,7 @@ jobs: test-build-docker-images: if: (github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch') && needs.files-changed.outputs.docker == 'true' - # needs: [files-changed, build] # tmp disable - needs: [files-changed] + needs: [files-changed, build, docker-compose-tests] # tmp disable runs-on: ubuntu-latest strategy: fail-fast: false diff --git a/Dockerfile.fat b/Dockerfile.fat index 5ade20ddc..12d92a0a4 100644 --- a/Dockerfile.fat +++ b/Dockerfile.fat @@ -21,14 +21,14 @@ ENV DISABLE_ADDITIONAL_FEATURES=false STIRLING_PDF_DESKTOP_UI=false RUN ./gradlew clean build -x spotlessApply -x spotlessCheck -x test -x sonarqube # Main stage -FROM alpine:3.20 +FROM alpine:3.22 ARG VERSION_TAG -# Community-Repo aktivieren -RUN echo "http://dl-cdn.alpinelinux.org/alpine/v3.20/community" >> /etc/apk/repositories +# Enable community repository +RUN echo "http://dl-cdn.alpinelinux.org/alpine/v3.22/community" >> /etc/apk/repositories -# Alle Pakete in einem RUN +# Install all packages in one RUN command RUN --mount=type=cache,target=/var/cache/apk \ apk upgrade --no-cache && \ apk add --no-cache \ @@ -43,7 +43,7 @@ RUN --mount=type=cache,target=/var/cache/apk \ openssl-dev \ openjdk21-jre \ ffmpeg \ - # Doc conversion + # Document conversion gcompat \ libc6-compat \ libreoffice \ @@ -69,7 +69,10 @@ RUN --mount=type=cache,target=/var/cache/apk \ py3-opencv \ ocrmypdf \ py3-pillow \ - py3-pdf2image + py3-pdf2image \ + # Calibre + calibre && \ + apk fix --no-cache calibre # Python venv + pip packages RUN set -eux; \ @@ -86,8 +89,7 @@ COPY app/core/src/main/resources/static/fonts/*.ttf /usr/share/fonts/opentype/no # first /app directory is for the build stage, second is for the final image COPY --from=build /app/app/core/build/libs/*.jar app.jar - -# Verzeichnisse, Fonts, Rechte +# Directories, fonts, permissions RUN set -eux; \ mv /usr/share/tessdata /usr/share/tessdata-original && \ mkdir -p /home/stirlingpdfuser /configs /logs /customFiles /pipeline/watchedFolders /pipeline/finishedFolders /tmp/stirling-pdf && \ @@ -99,7 +101,7 @@ RUN set -eux; \ /home/stirlingpdfuser /scripts /usr/share/fonts/opentype/noto \ /configs /customFiles /pipeline /tmp/stirling-pdf /app.jar -# Set Environment Variables +# Set environment variables ENV DISABLE_ADDITIONAL_FEATURES=true \ VERSION_TAG=$VERSION_TAG \ JAVA_BASE_OPTS="-XX:+UnlockExperimentalVMOptions -XX:MaxRAMPercentage=75 -XX:InitiatingHeapOccupancyPercent=20 -XX:+G1PeriodicGCInvokesConcurrent -XX:G1PeriodicGCInterval=10000 -XX:+UseStringDeduplication -XX:G1PeriodicGCSystemLoadThreshold=70" \ @@ -120,6 +122,7 @@ ENV DISABLE_ADDITIONAL_FEATURES=true \ TMP=/tmp/stirling-pdf EXPOSE 8080/tcp + # Set user and run command ENTRYPOINT ["tini", "--", "/scripts/init.sh"] CMD ["sh", "-c", "java -Dfile.encoding=UTF-8 -Djava.io.tmpdir=/tmp/stirling-pdf -jar /app.jar & /opt/venv/bin/unoserver --port 2003 --interface 127.0.0.1"]