FROM alpine:3.19

# Install Apache, PHP 8.2, and the SQLite extensions
RUN apk update && apk add --no-cache \
    apache2 \
    php82 \
    php82-apache2 \
    php82-pdo \
    php82-pdo_sqlite \
    php82-curl \
    curl \
    shadow

# Symlink php82 to php so scripts run naturally if needed
RUN ln -sf /usr/bin/php82 /usr/bin/php

# Alpine keeps Apache site configs here instead of a2enmod
RUN sed -i 's/#LoadModule rewrite_module/LoadModule rewrite_module/' /etc/apache2/httpd.conf && \
    sed -i 's/#LoadModule headers_module/LoadModule headers_module/' /etc/apache2/httpd.conf

# Copy files directly into Alpine's default web root
COPY . /var/www/localhost/htdocs/

# Set up the database directory permissions
RUN mkdir -p /var/www/localhost/htdocs/db && \
    chown -R apache:apache /var/www/localhost/htdocs/db && \
    chmod -R 755 /var/www/localhost/htdocs/db

# Match local user permissions for the runtime user (Alpine uses 'apache' instead of 'www-data')
RUN usermod -u 1000 apache && \
    groupmod -g 1000 apache

EXPOSE 80

# Start Apache in the foreground
CMD ["/usr/sbin/httpd", "-D", "FOREGROUND"]
