ARG REGISTRY_URL=docker.io/aprimediet ARG PHP=8.3 FROM ${REGISTRY_URL}/php:${PHP}-alpine LABEL maintainer=" aprimediet@gmail.com" # DEFINE ENV ENV SERVER_ROOT=/app ENV SERVER_ADMIN=you@example.com ENV APP_DIR=${SERVER_ROOT}/htdocs ENV LOG_LEVEL=info ENV PHP_MEMORY_LIMIT=256M # SET WORKDIR WORKDIR /tmp # SETUP APACHE2 USER RUN addgroup -g 10001 apache && \ adduser -D -u 10001 -G apache -s /bin/sh -h ${APP_DIR} apache # INSTALL APACHE2 RUN --mount=type=cache,target=/var/cache/apk \ apk upgrade && apk add --update \ apache2 php${PHP_VERSION}-apache2 # CREATE SYMLINKS TO /app RUN mkdir -p ${APP_DIR} && \ mkdir -p ${SERVER_ROOT}/logs && \ mkdir -p ${SERVER_ROOT}/run && \ ln -s /usr/lib/apache2 ${SERVER_ROOT}/modules && \ chmod -R 755 ${SERVER_ROOT}/logs && \ chmod -R 755 ${SERVER_ROOT/run} # CONFIGURE HTTPD RUN sed -i "s|ServerRoot /var/www|ServerRoot ${SERVER_ROOT}|" /etc/apache2/httpd.conf && \ sed -i "s|ServerAdmin you@example.com| ServerAdmin ${SERVER_ADMIN}|" /etc/apache2/httpd.conf && \ sed -i "s|DocumentRoot \"/var/www/localhost/htdocs\"|DocumentRoot \"${APP_DIR}\"|" /etc/apache2/httpd.conf && \ sed -i "s|Directory \"/var/www/localhost/htdocs\"|Directory \"${APP_DIR}\"|" /etc/apache2/httpd.conf && \ sed -i "s|AllowOverride None|AllowOverride All|" /etc/apache2/httpd.conf && \ sed -i "s|ErrorLog .*|ErrorLog /dev/stderr \nTransferLog /dev/stdout|" /etc/apache2/httpd.conf && \ sed -i "s|CustomLog .* combined|CustomLog /dev/stdout combined|" /etc/apache2/httpd.conf && \ sed -i "s|LogLevel .*|LogLevel ${LOG_LEVEL}|" /etc/apache2/httpd.conf && \ sed -i "s|#LoadModule rewrite_module|LoadModule rewrite_module|" /etc/apache2/httpd.conf && \ sed -i "s|#LoadModule deflate_module|LoadModule deflate_module|" /etc/apache2/httpd.conf && \ sed -i "s|#LoadModule expires_module|LoadModule expires_module|" /etc/apache2/httpd.conf && \ sed -i "s|Require host .example.com|#Require host .example.com|" /etc/apache2/conf.d/info.conf && \ sed -i "s|Require ip 127|Require all granted|" /etc/apache2/conf.d/info.conf # ADD INITIALIZATION SCRIPT ADD ./scripts/entrypoint /usr/local/bin/entrypoint RUN chmod +x /usr/local/bin/entrypoint && \ cp -vR /var/www/localhost/htdocs/* ${APP_DIR}/ && \ rm -vrf /var/www && \ chown -R apache:apache ${APP_DIR} WORKDIR ${APP_DIR} EXPOSE 80 ENTRYPOINT ["/usr/local/bin/entrypoint"]