40 lines
1.2 KiB
Docker
40 lines
1.2 KiB
Docker
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 && \
|
|
sed -i 's/DirectoryIndex index.html/DirectoryIndex index.php index.html/' /etc/apache2/httpd.conf
|
|
|
|
# Copy files directly into Alpine's default web root
|
|
COPY . /var/www/localhost/htdocs/
|
|
|
|
RUN rm -f /var/www/localhost/htdocs/index.html
|
|
|
|
# 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"]
|