Devcontainer (#3097)

# Description of Changes

Please provide a summary of the changes, including:

- What was changed
- Why the change was made
- Any challenges encountered

Closes #(issue_number)

---

## Checklist

### General

- [ ] I have read the [Contribution
Guidelines](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/CONTRIBUTING.md)
- [ ] I have read the [Stirling-PDF Developer
Guide](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/DeveloperGuide.md)
(if applicable)
- [ ] I have read the [How to add new languages to
Stirling-PDF](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/HowToAddNewLanguage.md)
(if applicable)
- [ ] I have performed a self-review of my own code
- [ ] My changes generate no new warnings

### Documentation

- [ ] I have updated relevant docs on [Stirling-PDF's doc
repo](https://github.com/Stirling-Tools/Stirling-Tools.github.io/blob/main/docs/)
(if functionality has heavily changed)
- [ ] I have read the section [Add New Translation
Tags](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/HowToAddNewLanguage.md#add-new-translation-tags)
(for new translation tags only)

### UI Changes (if applicable)

- [ ] Screenshots or videos demonstrating the UI changes are attached
(e.g., as comments or direct attachments in the PR)

### Testing (if applicable)

- [ ] I have tested my changes locally. Refer to the [Testing
Guide](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/DeveloperGuide.md#6-testing)
for more details.
This commit is contained in:
Ludy
2025-03-02 20:35:41 +01:00
committed by GitHub
parent 1170fddb07
commit 89022c0a24
3 changed files with 178 additions and 0 deletions

56
Dockerfile.dev Normal file
View File

@@ -0,0 +1,56 @@
# dockerfile.dev
# Basisimage: Gradle mit JDK 17 (Debian-basiert)
FROM gradle:8.12-jdk17
# Als Root-Benutzer arbeiten, um benötigte Pakete zu installieren
USER root
# Update und Installation zusätzlicher Pakete (Debian/Ubuntu-basiert)
RUN apt-get update && apt-get install -y \
wget \
ca-certificates \
tzdata \
tini \
bash \
curl \
libreoffice \
poppler-utils \
qpdf \
tesseract-ocr \
tesseract-ocr-eng \
fonts-dejavu \
fonts-noto \
python3 \
python3-pip \
python3-venv \
&& apt-get clean && rm -rf /var/lib/apt/lists/*
# Setze die Environment Variable für setuptools
ENV SETUPTOOLS_USE_DISTUTILS=local
# Installation der benötigten Python-Pakete
RUN python3 -m venv /opt/venv \
&& . /opt/venv/bin/activate \
&& pip install --upgrade 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"
# Erstelle notwendige Verzeichnisse und lege einen NichtRoot Benutzer an
RUN mkdir -p /home/devuser/{configs,logs,customFiles,pipeline/watchedFolders,pipeline/finishedFolders} \
&& adduser --disabled-password --gecos '' devuser \
&& chown -R devuser:devuser /home/devuser
RUN mkdir -p /home/devuser/logs && chown devuser:devuser /home/devuser/logs
RUN mkdir -p /workspace/logs && chown devuser:devuser /workspace/logs
RUN mkdir -p /workspace/src && chown devuser:devuser /workspace/src
RUN mkdir -p /workspace/src/main && chown devuser:devuser /workspace/src/main
RUN mkdir -p /workspace/src/main/resources && chown devuser:devuser /workspace/src/main/resources
# Setze das Arbeitsverzeichnis (wird später per Bind-Mount überschrieben)
WORKDIR /workspace
# Wechsel zum NichtRoot Benutzer
USER devuser