mirror of
https://github.com/Stirling-Tools/Stirling-PDF.git
synced 2025-07-27 15:45:21 +00:00
re-delete files
This commit is contained in:
parent
af8e065e87
commit
89cda87490
103
Dockerfile
103
Dockerfile
@ -1,103 +0,0 @@
|
|||||||
# Main stage
|
|
||||||
FROM alpine:3.22.0@sha256:8a1f59ffb675680d47db6337b49d22281a139e9d709335b492be023728e11715
|
|
||||||
|
|
||||||
# Copy necessary files
|
|
||||||
COPY scripts /scripts
|
|
||||||
COPY pipeline /pipeline
|
|
||||||
COPY stirling-pdf/src/main/resources/static/fonts/*.ttf /usr/share/fonts/opentype/noto/
|
|
||||||
COPY stirling-pdf/build/libs/*.jar app.jar
|
|
||||||
|
|
||||||
ARG VERSION_TAG
|
|
||||||
|
|
||||||
LABEL org.opencontainers.image.title="Stirling-PDF"
|
|
||||||
LABEL org.opencontainers.image.description="A powerful locally hosted web-based PDF manipulation tool supporting 50+ operations including merging, splitting, conversion, OCR, watermarking, and more."
|
|
||||||
LABEL org.opencontainers.image.source="https://github.com/Stirling-Tools/Stirling-PDF"
|
|
||||||
LABEL org.opencontainers.image.licenses="MIT"
|
|
||||||
LABEL org.opencontainers.image.vendor="Stirling-Tools"
|
|
||||||
LABEL org.opencontainers.image.url="https://www.stirlingpdf.com"
|
|
||||||
LABEL org.opencontainers.image.documentation="https://docs.stirlingpdf.com"
|
|
||||||
LABEL maintainer="Stirling-Tools"
|
|
||||||
LABEL org.opencontainers.image.authors="Stirling-Tools"
|
|
||||||
LABEL org.opencontainers.image.version="${VERSION_TAG}"
|
|
||||||
LABEL org.opencontainers.image.keywords="PDF, manipulation, merge, split, convert, OCR, watermark"
|
|
||||||
|
|
||||||
# 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" \
|
|
||||||
JAVA_CUSTOM_OPTS="" \
|
|
||||||
HOME=/home/stirlingpdfuser \
|
|
||||||
PUID=1000 \
|
|
||||||
PGID=1000 \
|
|
||||||
UMASK=022 \
|
|
||||||
PYTHONPATH=/usr/lib/libreoffice/program:/opt/venv/lib/python3.12/site-packages \
|
|
||||||
UNO_PATH=/usr/lib/libreoffice/program \
|
|
||||||
URE_BOOTSTRAP=file:///usr/lib/libreoffice/program/fundamentalrc \
|
|
||||||
PATH=$PATH:/opt/venv/bin \
|
|
||||||
STIRLING_TEMPFILES_DIRECTORY=/tmp/stirling-pdf \
|
|
||||||
TMPDIR=/tmp/stirling-pdf \
|
|
||||||
TEMP=/tmp/stirling-pdf \
|
|
||||||
TMP=/tmp/stirling-pdf
|
|
||||||
|
|
||||||
|
|
||||||
# JDK for app
|
|
||||||
RUN echo "@main https://dl-cdn.alpinelinux.org/alpine/edge/main" | tee -a /etc/apk/repositories && \
|
|
||||||
echo "@community https://dl-cdn.alpinelinux.org/alpine/edge/community" | tee -a /etc/apk/repositories && \
|
|
||||||
echo "@testing https://dl-cdn.alpinelinux.org/alpine/edge/testing" | tee -a /etc/apk/repositories && \
|
|
||||||
apk upgrade --no-cache -a && \
|
|
||||||
apk add --no-cache \
|
|
||||||
ca-certificates \
|
|
||||||
tzdata \
|
|
||||||
tini \
|
|
||||||
bash \
|
|
||||||
curl \
|
|
||||||
shadow \
|
|
||||||
su-exec \
|
|
||||||
openssl \
|
|
||||||
openssl-dev \
|
|
||||||
openjdk21-jre \
|
|
||||||
# Doc conversion
|
|
||||||
gcompat \
|
|
||||||
libc6-compat \
|
|
||||||
libreoffice \
|
|
||||||
# pdftohtml
|
|
||||||
poppler-utils \
|
|
||||||
# OCR MY PDF (unpaper for descew and other advanced features)
|
|
||||||
tesseract-ocr-data-eng \
|
|
||||||
tesseract-ocr-data-chi_sim \
|
|
||||||
tesseract-ocr-data-deu \
|
|
||||||
tesseract-ocr-data-fra \
|
|
||||||
tesseract-ocr-data-por \
|
|
||||||
unpaper \
|
|
||||||
# CV
|
|
||||||
py3-opencv \
|
|
||||||
python3 \
|
|
||||||
ocrmypdf \
|
|
||||||
py3-pip \
|
|
||||||
py3-pillow@testing \
|
|
||||||
py3-pdf2image@testing \
|
|
||||||
# URW Base 35 fonts for better PDF rendering
|
|
||||||
font-urw-base35 && \
|
|
||||||
python3 -m venv /opt/venv && \
|
|
||||||
/opt/venv/bin/pip install --upgrade pip setuptools && \
|
|
||||||
/opt/venv/bin/pip install --no-cache-dir --upgrade unoserver weasyprint && \
|
|
||||||
ln -s /usr/lib/libreoffice/program/uno.py /opt/venv/lib/python3.12/site-packages/ && \
|
|
||||||
ln -s /usr/lib/libreoffice/program/unohelper.py /opt/venv/lib/python3.12/site-packages/ && \
|
|
||||||
ln -s /usr/lib/libreoffice/program /opt/venv/lib/python3.12/site-packages/LibreOffice && \
|
|
||||||
mv /usr/share/tessdata /usr/share/tessdata-original && \
|
|
||||||
mkdir -p $HOME /configs /logs /customFiles /pipeline/watchedFolders /pipeline/finishedFolders /tmp/stirling-pdf && \
|
|
||||||
# Configure URW Base 35 fonts
|
|
||||||
ln -s /usr/share/fontconfig/conf.avail/69-urw-*.conf /etc/fonts/conf.d/ && \
|
|
||||||
fc-cache -f -v && \
|
|
||||||
chmod +x /scripts/* && \
|
|
||||||
chmod +x /scripts/init.sh && \
|
|
||||||
# User permissions
|
|
||||||
addgroup -S stirlingpdfgroup && adduser -S stirlingpdfuser -G stirlingpdfgroup && \
|
|
||||||
chown -R stirlingpdfuser:stirlingpdfgroup $HOME /scripts /usr/share/fonts/opentype/noto /configs /customFiles /pipeline /tmp/stirling-pdf && \
|
|
||||||
chown stirlingpdfuser:stirlingpdfgroup /app.jar
|
|
||||||
|
|
||||||
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"]
|
|
@ -1,61 +0,0 @@
|
|||||||
# dockerfile.dev
|
|
||||||
|
|
||||||
# Basisimage: Gradle mit JDK 17 (Debian-basiert)
|
|
||||||
FROM gradle:8.14-jdk17
|
|
||||||
|
|
||||||
# Als Root-Benutzer arbeiten, um benötigte Pakete zu installieren
|
|
||||||
USER root
|
|
||||||
|
|
||||||
# Set GRADLE_HOME und füge Gradle zum PATH hinzu
|
|
||||||
ENV GRADLE_HOME=/opt/gradle
|
|
||||||
ENV PATH="$GRADLE_HOME/bin:$PATH"
|
|
||||||
|
|
||||||
# Update und Installation zusätzlicher Pakete (Debian/Ubuntu-basiert)
|
|
||||||
RUN apt-get update && apt-get install -y \
|
|
||||||
sudo \
|
|
||||||
libreoffice \
|
|
||||||
poppler-utils \
|
|
||||||
qpdf \
|
|
||||||
# settings.yml | tessdataDir: /usr/share/tesseract-ocr/5/tessdata
|
|
||||||
tesseract-ocr \
|
|
||||||
tesseract-ocr-eng \
|
|
||||||
fonts-terminus fonts-dejavu fonts-font-awesome fonts-noto fonts-noto-core fonts-noto-cjk fonts-noto-extra fonts-liberation fonts-linuxlibertine fonts-urw-base35 \
|
|
||||||
python3-uno \
|
|
||||||
python3-venv \
|
|
||||||
# ss -tln
|
|
||||||
iproute2 \
|
|
||||||
&& apt-get clean && rm -rf /var/lib/apt/lists/*
|
|
||||||
|
|
||||||
# Setze die Environment Variable für setuptools
|
|
||||||
ENV SETUPTOOLS_USE_DISTUTILS=local \
|
|
||||||
STIRLING_TEMPFILES_DIRECTORY=/tmp/stirling-pdf \
|
|
||||||
TMPDIR=/tmp/stirling-pdf \
|
|
||||||
TEMP=/tmp/stirling-pdf \
|
|
||||||
TMP=/tmp/stirling-pdf
|
|
||||||
|
|
||||||
# Installation der benötigten Python-Pakete
|
|
||||||
RUN python3 -m venv --system-site-packages /opt/venv \
|
|
||||||
&& . /opt/venv/bin/activate \
|
|
||||||
&& pip install --upgrade pip setuptools \
|
|
||||||
&& pip install --no-cache-dir WeasyPrint pdf2image pillow unoserver opencv-python-headless pre-commit
|
|
||||||
|
|
||||||
# Füge den venv-Pfad zur globalen PATH-Variable hinzu, damit die Tools verfügbar sind
|
|
||||||
ENV PATH="/opt/venv/bin:$PATH"
|
|
||||||
|
|
||||||
COPY . /workspace
|
|
||||||
|
|
||||||
RUN mkdir -p /tmp/stirling-pdf \
|
|
||||||
&& fc-cache -f -v \
|
|
||||||
&& adduser --disabled-password --gecos '' devuser \
|
|
||||||
&& chown -R devuser:devuser /home/devuser /workspace /tmp/stirling-pdf
|
|
||||||
RUN echo "devuser ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/devuser \
|
|
||||||
&& chmod 0440 /etc/sudoers.d/devuser
|
|
||||||
|
|
||||||
# Setze das Arbeitsverzeichnis (wird später per Bind-Mount überschrieben)
|
|
||||||
WORKDIR /workspace
|
|
||||||
|
|
||||||
RUN chmod +x /workspace/.devcontainer/git-init.sh
|
|
||||||
RUN sudo chmod +x /workspace/.devcontainer/init-setup.sh
|
|
||||||
|
|
||||||
# Wechsel zum Nicht‑Root Benutzer
|
|
||||||
USER devuser
|
|
114
Dockerfile.fat
114
Dockerfile.fat
@ -1,114 +0,0 @@
|
|||||||
# Build the application
|
|
||||||
FROM gradle:8.14-jdk21 AS build
|
|
||||||
|
|
||||||
COPY build.gradle .
|
|
||||||
COPY settings.gradle .
|
|
||||||
COPY gradlew .
|
|
||||||
COPY gradle gradle/
|
|
||||||
COPY stirling-pdf/build.gradle stirling-pdf/.
|
|
||||||
COPY common/build.gradle common/.
|
|
||||||
COPY proprietary/build.gradle proprietary/.
|
|
||||||
RUN ./gradlew build -x spotlessApply -x spotlessCheck -x test -x sonarqube || return 0
|
|
||||||
|
|
||||||
# Set the working directory
|
|
||||||
WORKDIR /app
|
|
||||||
|
|
||||||
# Copy the entire project to the working directory
|
|
||||||
COPY . .
|
|
||||||
|
|
||||||
# Build the application with DISABLE_ADDITIONAL_FEATURES=false
|
|
||||||
RUN DISABLE_ADDITIONAL_FEATURES=false \
|
|
||||||
STIRLING_PDF_DESKTOP_UI=false \
|
|
||||||
./gradlew clean build -x spotlessApply -x spotlessCheck -x test -x sonarqube
|
|
||||||
|
|
||||||
# Main stage
|
|
||||||
FROM alpine:3.22.0@sha256:8a1f59ffb675680d47db6337b49d22281a139e9d709335b492be023728e11715
|
|
||||||
|
|
||||||
# Copy necessary files
|
|
||||||
COPY scripts /scripts
|
|
||||||
COPY pipeline /pipeline
|
|
||||||
COPY stirling-pdf/src/main/resources/static/fonts/*.ttf /usr/share/fonts/opentype/noto/
|
|
||||||
COPY --from=build /app/stirling-pdf/build/libs/*.jar app.jar
|
|
||||||
|
|
||||||
ARG VERSION_TAG
|
|
||||||
|
|
||||||
# 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" \
|
|
||||||
JAVA_CUSTOM_OPTS="" \
|
|
||||||
HOME=/home/stirlingpdfuser \
|
|
||||||
PUID=1000 \
|
|
||||||
PGID=1000 \
|
|
||||||
UMASK=022 \
|
|
||||||
FAT_DOCKER=true \
|
|
||||||
INSTALL_BOOK_AND_ADVANCED_HTML_OPS=false \
|
|
||||||
PYTHONPATH=/usr/lib/libreoffice/program:/opt/venv/lib/python3.12/site-packages \
|
|
||||||
UNO_PATH=/usr/lib/libreoffice/program \
|
|
||||||
URE_BOOTSTRAP=file:///usr/lib/libreoffice/program/fundamentalrc \
|
|
||||||
PATH=$PATH:/opt/venv/bin \
|
|
||||||
STIRLING_TEMPFILES_DIRECTORY=/tmp/stirling-pdf \
|
|
||||||
TMPDIR=/tmp/stirling-pdf \
|
|
||||||
TEMP=/tmp/stirling-pdf \
|
|
||||||
TMP=/tmp/stirling-pdf
|
|
||||||
|
|
||||||
|
|
||||||
# JDK for app
|
|
||||||
RUN echo "@main https://dl-cdn.alpinelinux.org/alpine/edge/main" | tee -a /etc/apk/repositories && \
|
|
||||||
echo "@community https://dl-cdn.alpinelinux.org/alpine/edge/community" | tee -a /etc/apk/repositories && \
|
|
||||||
echo "@testing https://dl-cdn.alpinelinux.org/alpine/edge/testing" | tee -a /etc/apk/repositories && \
|
|
||||||
apk upgrade --no-cache -a && \
|
|
||||||
apk add --no-cache \
|
|
||||||
ca-certificates \
|
|
||||||
tzdata \
|
|
||||||
tini \
|
|
||||||
bash \
|
|
||||||
curl \
|
|
||||||
shadow \
|
|
||||||
su-exec \
|
|
||||||
openssl \
|
|
||||||
openssl-dev \
|
|
||||||
openjdk21-jre \
|
|
||||||
# Doc conversion
|
|
||||||
gcompat \
|
|
||||||
libc6-compat \
|
|
||||||
libreoffice \
|
|
||||||
# pdftohtml
|
|
||||||
poppler-utils \
|
|
||||||
# OCR MY PDF (unpaper for descew and other advanced featues)
|
|
||||||
tesseract-ocr-data-eng \
|
|
||||||
tesseract-ocr-data-chi_sim \
|
|
||||||
tesseract-ocr-data-deu \
|
|
||||||
tesseract-ocr-data-fra \
|
|
||||||
tesseract-ocr-data-por \
|
|
||||||
unpaper \
|
|
||||||
font-terminus font-dejavu font-noto font-noto-cjk font-awesome font-noto-extra font-liberation font-linux-libertine font-urw-base35 \
|
|
||||||
# CV
|
|
||||||
py3-opencv \
|
|
||||||
python3 \
|
|
||||||
ocrmypdf \
|
|
||||||
py3-pip \
|
|
||||||
py3-pillow@testing \
|
|
||||||
py3-pdf2image@testing && \
|
|
||||||
python3 -m venv /opt/venv && \
|
|
||||||
/opt/venv/bin/pip install --upgrade pip setuptools && \
|
|
||||||
/opt/venv/bin/pip install --no-cache-dir --upgrade unoserver weasyprint && \
|
|
||||||
ln -s /usr/lib/libreoffice/program/uno.py /opt/venv/lib/python3.12/site-packages/ && \
|
|
||||||
ln -s /usr/lib/libreoffice/program/unohelper.py /opt/venv/lib/python3.12/site-packages/ && \
|
|
||||||
ln -s /usr/lib/libreoffice/program /opt/venv/lib/python3.12/site-packages/LibreOffice && \
|
|
||||||
mv /usr/share/tessdata /usr/share/tessdata-original && \
|
|
||||||
mkdir -p $HOME /configs /logs /customFiles /pipeline/watchedFolders /pipeline/finishedFolders /tmp/stirling-pdf && \
|
|
||||||
# Configure URW Base 35 fonts
|
|
||||||
ln -s /usr/share/fontconfig/conf.avail/69-urw-*.conf /etc/fonts/conf.d/ && \
|
|
||||||
fc-cache -f -v && \
|
|
||||||
chmod +x /scripts/* && \
|
|
||||||
chmod +x /scripts/init.sh && \
|
|
||||||
# User permissions
|
|
||||||
addgroup -S stirlingpdfgroup && adduser -S stirlingpdfuser -G stirlingpdfgroup && \
|
|
||||||
chown -R stirlingpdfuser:stirlingpdfgroup $HOME /scripts /usr/share/fonts/opentype/noto /configs /customFiles /pipeline /tmp/stirling-pdf && \
|
|
||||||
chown stirlingpdfuser:stirlingpdfgroup /app.jar
|
|
||||||
|
|
||||||
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"]
|
|
@ -1,55 +0,0 @@
|
|||||||
# use alpine
|
|
||||||
FROM alpine:3.22.0@sha256:8a1f59ffb675680d47db6337b49d22281a139e9d709335b492be023728e11715
|
|
||||||
|
|
||||||
ARG VERSION_TAG
|
|
||||||
|
|
||||||
# Set Environment Variables
|
|
||||||
ENV DISABLE_ADDITIONAL_FEATURES=true \
|
|
||||||
HOME=/home/stirlingpdfuser \
|
|
||||||
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" \
|
|
||||||
JAVA_CUSTOM_OPTS="" \
|
|
||||||
PUID=1000 \
|
|
||||||
PGID=1000 \
|
|
||||||
UMASK=022 \
|
|
||||||
STIRLING_TEMPFILES_DIRECTORY=/tmp/stirling-pdf \
|
|
||||||
TMPDIR=/tmp/stirling-pdf \
|
|
||||||
TEMP=/tmp/stirling-pdf \
|
|
||||||
TMP=/tmp/stirling-pdf
|
|
||||||
|
|
||||||
# Copy necessary files
|
|
||||||
COPY scripts/download-security-jar.sh /scripts/download-security-jar.sh
|
|
||||||
COPY scripts/init-without-ocr.sh /scripts/init-without-ocr.sh
|
|
||||||
COPY scripts/installFonts.sh /scripts/installFonts.sh
|
|
||||||
COPY pipeline /pipeline
|
|
||||||
COPY stirling-pdf/build/libs/*.jar app.jar
|
|
||||||
|
|
||||||
# Set up necessary directories and permissions
|
|
||||||
RUN echo "@testing https://dl-cdn.alpinelinux.org/alpine/edge/main" | tee -a /etc/apk/repositories && \
|
|
||||||
echo "@testing https://dl-cdn.alpinelinux.org/alpine/edge/community" | tee -a /etc/apk/repositories && \
|
|
||||||
echo "@testing https://dl-cdn.alpinelinux.org/alpine/edge/testing" | tee -a /etc/apk/repositories && \
|
|
||||||
apk upgrade --no-cache -a && \
|
|
||||||
apk add --no-cache \
|
|
||||||
ca-certificates \
|
|
||||||
tzdata \
|
|
||||||
tini \
|
|
||||||
bash \
|
|
||||||
curl \
|
|
||||||
shadow \
|
|
||||||
su-exec \
|
|
||||||
openjdk21-jre && \
|
|
||||||
# User permissions
|
|
||||||
mkdir -p /configs /logs /customFiles /usr/share/fonts/opentype/noto /tmp/stirling-pdf && \
|
|
||||||
chmod +x /scripts/*.sh && \
|
|
||||||
addgroup -S stirlingpdfgroup && adduser -S stirlingpdfuser -G stirlingpdfgroup && \
|
|
||||||
chown -R stirlingpdfuser:stirlingpdfgroup $HOME /scripts /configs /customFiles /pipeline /tmp/stirling-pdf && \
|
|
||||||
chown stirlingpdfuser:stirlingpdfgroup /app.jar
|
|
||||||
|
|
||||||
# Set environment variables
|
|
||||||
ENV ENDPOINTS_GROUPS_TO_REMOVE=CLI
|
|
||||||
|
|
||||||
EXPOSE 8080/tcp
|
|
||||||
|
|
||||||
# Run the application
|
|
||||||
ENTRYPOINT ["tini", "--", "/scripts/init-without-ocr.sh"]
|
|
||||||
CMD ["java", "-Dfile.encoding=UTF-8", "-Djava.io.tmpdir=/tmp/stirling-pdf", "-jar", "/app.jar"]
|
|
Loading…
x
Reference in New Issue
Block a user