FROM php:8.3-fpm-bookworm ENV DEBIAN_FRONTEND=noninteractive RUN apt-get update && apt-get install -y --no-install-recommends \ git curl unzip ca-certificates gnupg \ libpq-dev libzip-dev libonig-dev libxml2-dev libcurl4-openssl-dev \ libicu-dev libpng-dev libjpeg-dev libfreetype6-dev \ libsodium-dev pkg-config libssl-dev \ ffmpeg \ && install -m 0755 -d /etc/apt/keyrings \ && curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg \ && chmod a+r /etc/apt/keyrings/docker.gpg \ && echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian bookworm stable" > /etc/apt/sources.list.d/docker.list \ && apt-get update \ && apt-get install -y --no-install-recommends docker-ce-cli \ && rm -rf /var/lib/apt/lists/* # Piper TTS Binary (rhasspy/piper) - kein apt-Paket, GitHub-Release verwenden RUN curl -L https://github.com/rhasspy/piper/releases/download/v1.2.0/piper_amd64.tar.gz \ | tar -xz -C /usr/local/bin --strip-components=1 \ && chmod +x /usr/local/bin/piper RUN docker-php-ext-configure gd --with-freetype --with-jpeg \ && docker-php-ext-install -j"$(nproc)" \ pdo pdo_pgsql pgsql \ bcmath intl zip gd opcache exif pcntl sodium RUN curl -fsSL https://deb.nodesource.com/setup_22.x | bash - \ && apt-get install -y nodejs \ && rm -rf /var/lib/apt/lists/* RUN pecl install redis && docker-php-ext-enable redis COPY --from=composer:2 /usr/bin/composer /usr/bin/composer ARG WWWUSER=1000 ARG WWWGROUP=1000 RUN groupadd -g ${WWWGROUP} fox && useradd -u ${WWWUSER} -g fox -m -s /bin/bash fox WORKDIR /var/www # Sticky-Bit auf /tmp damit tempnam() / Logging immer funktioniert RUN mkdir -p /tmp && chmod 1777 /tmp # storage + bootstrap/cache an www-data übergeben (Build-time; entrypoint.sh # wiederholt das zur Laufzeit, weil Bind-Mounts den Build-State überschreiben) RUN mkdir -p /var/www/storage/framework/cache/data \ /var/www/storage/framework/sessions \ /var/www/storage/framework/views \ /var/www/storage/logs \ /var/www/storage/app/audio \ /var/www/storage/app/public \ /var/www/storage/app/voices \ /var/www/bootstrap/cache \ && chown -R www-data:www-data /var/www/storage /var/www/bootstrap/cache \ && chmod -R 775 /var/www/storage /var/www/bootstrap/cache COPY docker/php/php.ini /usr/local/etc/php/conf.d/zz-fox.ini COPY docker/php/entrypoint.sh /usr/local/bin/entrypoint.sh RUN chmod +x /usr/local/bin/entrypoint.sh ENTRYPOINT ["/usr/local/bin/entrypoint.sh"] CMD ["php-fpm"]