vcard4reseller/docker/php/Dockerfile
Thomas Peterson b52d696cc5 Druckdaten: Hintergrund-PDF (VDP) & eingebettete eigene Schriften
- Renderer auf FPDI (setasign/fpdi) umgestellt: Kunden-PDF wird als
  Seitenhintergrund importiert, nur dynamische Felder werden überlagert
  (Variable Data Printing); bei Hintergrund keine eigenen Schnittmarken
- Eigene Schriften (TTF/OTF) per TCPDF_FONTS::addTTFfont eingebettet,
  fontFamily pro Element; DejaVu-TTF im PHP-Image
- CardTemplate: backgroundPath + fonts; Renderer color() unterstützt {hex}
- CardAssetUploadController: Upload/Delete Hintergrund-PDF + Schrift-Upload,
  Speicher in var/storage/cards/{companyId} (außerhalb Webroot)
- Editor-GET liefert hasBackground + fonts
- Migration robust gegen MariaDB json_valid-CHECK (nullable -> '[]' -> NOT NULL)
- Konzept §13 ergänzt

Verifiziert: Kunden-Hintergrund + dynamische Felder + eingebettete Serifenschrift
+ QR; /FontFile im PDF.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-05-31 17:23:41 +02:00

27 lines
1.1 KiB
Docker

FROM php:8.4-fpm-bookworm
# System-Abhängigkeiten für die PHP-Extensions
RUN apt-get update && apt-get install -y --no-install-recommends \
git unzip libicu-dev libzip-dev libpng-dev libjpeg-dev libfreetype6-dev \
fonts-dejavu-core \
&& docker-php-ext-configure gd --with-freetype --with-jpeg \
&& docker-php-ext-install -j"$(nproc)" intl pdo_mysql zip gd opcache \
&& apt-get clean && rm -rf /var/lib/apt/lists/*
# Composer aus dem offiziellen Image übernehmen
COPY --from=composer:2 /usr/bin/composer /usr/bin/composer
# Symfony CLI (praktisch für Maker/Server/Checks)
RUN curl -1sLf 'https://dl.cloudsmith.io/public/symfony/stable/setup.deb.sh' | bash \
&& apt-get update && apt-get install -y --no-install-recommends symfony-cli \
&& apt-get clean && rm -rf /var/lib/apt/lists/*
# Nicht-root-User passend zur Host-UID (vermeidet Datei-Rechte-Probleme)
ARG UID=1000
ARG GID=1000
RUN groupmod -g "${GID}" www-data 2>/dev/null || true \
&& usermod -u "${UID}" -g "${GID}" www-data 2>/dev/null || true
WORKDIR /app
USER www-data