my-homelab-configs/apps/website/Dockerfile

47 lines
1.6 KiB
Docker

FROM alpine:3.19
RUN apk update && apk add --no-cache \
apache2 \
php82 \
php82-apache2 \
php82-pdo \
php82-pdo_sqlite \
php82-curl \
curl \
shadow
RUN ln -sf /usr/bin/php82 /usr/bin/php
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 && \
sed -i 's/^Listen 80$/Listen 8080/' /etc/apache2/httpd.conf && \
sed -i 's#^ErrorLog .*#ErrorLog /proc/self/fd/2#' /etc/apache2/httpd.conf && \
sed -i 's#^CustomLog .*#CustomLog /proc/self/fd/1 combined#' /etc/apache2/httpd.conf && \
if grep -q '^PidFile ' /etc/apache2/httpd.conf; then \
sed -i 's#^PidFile .*#PidFile /tmp/httpd.pid#' /etc/apache2/httpd.conf; \
else \
printf '\nPidFile /tmp/httpd.pid\n' >> /etc/apache2/httpd.conf; \
fi
COPY . /var/www/localhost/htdocs/
RUN rm -f /var/www/localhost/htdocs/index.html
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
RUN usermod -u 1000 apache && \
groupmod -g 1000 apache && \
mkdir -p /run/apache2 /var/log/apache2 /tmp/website-lang && \
chown -R apache:apache /run/apache2 /var/log/apache2 /tmp/website-lang /var/www/localhost/htdocs/db
ENV WEBSITE_LANG_WRITE_DIR=/var/www/localhost/htdocs/db/lang
USER apache
EXPOSE 8080
CMD ["/usr/sbin/httpd", "-D", "FOREGROUND"]