# dockerfile.dev

# Basisimage: Gradle mit JDK 17 (Debian-basiert)
FROM gradle:8.13-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 \
  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

# Installation der benötigten Python-Pakete
RUN python3 -m venv --system-site-packages /opt/venv \
  && . /opt/venv/bin/activate \
  && 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 adduser --disabled-password --gecos '' devuser \
  && chown -R devuser:devuser /home/devuser /workspace
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