forked from itchy/Dialyse-Webseite
24 lines
1.0 KiB
Docker
24 lines
1.0 KiB
Docker
FROM php:8.5-apache-trixie
|
|
|
|
# Install system dependencies and PHP GD extension (with FreeType & JPEG/PNG support)
|
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
|
libfreetype6-dev \
|
|
libjpeg62-turbo-dev \
|
|
libpng-dev \
|
|
&& docker-php-ext-configure gd --with-freetype --with-jpeg \
|
|
&& docker-php-ext-install -j"$(nproc)" gd \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
# Use official production php.ini and configure timezone & security settings
|
|
RUN mv "$PHP_INI_DIR/php.ini-production" "$PHP_INI_DIR/php.ini" \
|
|
&& printf "date.timezone = Europe/Berlin\nexpose_php = Off\nsession.cookie_httponly = 1\nsession.use_strict_mode = 1\n" > "$PHP_INI_DIR/conf.d/99-custom.ini"
|
|
|
|
# Enable Apache modules and harden server signature
|
|
RUN a2enmod rewrite headers expires deflate \
|
|
&& printf "ServerTokens Prod\nServerSignature Off\n" > /etc/apache2/conf-available/security-hardening.conf \
|
|
&& a2enconf security-hardening
|
|
|
|
# Copy application code
|
|
COPY --chown=www-data:www-data . /var/www/html/
|
|
|
|
EXPOSE 80
|