ARG REGISTRY_URL=docker.io/aprimediet ARG PHP_VERSION=8.4 FROM ${REGISTRY_URL}/php:${PHP_VERSION}-ubi9 LABEL maintainer=" aprimediet@gmail.com" # Define base System Env ENV SERVER_ROOT=/app ENV SERVER_ADMIN=aprimediet@gmail.com ENV APP_DIR=${SERVER_ROOT}/htdocs ENV CGI_DIR=${SERVER_ROOT}/cgi-bin ENV RUN_DIR=${SERVER_ROOT}/run ENV LOG_DIR=${SERVER_ROOT}/logs ENV LOG_LEVEL=info ENV PHP_MEMORY_LIMIT=256M USER root # Set workdir WORKDIR /tmp # Setup httpd User # Add group and user httpd # and setup httpd server root RUN groupadd -g 10001 apache && \ useradd -u 10001 -g 10001 -m -d ${SERVER_ROOT} -s /sbin/nologin apache && \ mkdir -p ${APP_DIR} && \ mkdir -p ${CGI_DIR} && \ mkdir -p ${RUN_DIR} && \ mkdir -p ${LOG_DIR} && \ ln -ns /etc/httpd/conf ${SERVER_ROOT}/conf && \ ln -ns /etc/httpd/conf.d ${SERVER_ROOT}/conf.d && \ ln -ns /etc/httpd/conf.modules.d ${SERVER_ROOT}/conf.modules.d && \ ln -ns /usr/lib64/httpd/modules ${SERVER_ROOT}/modules && \ ln -ns /var/lib/httpd ${SERVER_ROOT}/state && \ chown apache:apache ${RUN_DIR} && \ chown apache:apache ${LOG_DIR} # Install httpd RUN dnf -y update && \ dnf -y install httpd # Configure httpd RUN sed -i "s|ServerRoot \"/etc/httpd\"|ServerRoot ${SERVER_ROOT}|" /etc/httpd/conf/httpd.conf && \ sed -i "s|ServerAdmin you@example.com| ServerAdmin ${SERVER_ADMIN}|" /etc/httpd/conf/httpd.conf && \ sed -i "s|DocumentRoot \"/var/www/html\"|DocumentRoot \"${APP_DIR}\"|" /etc/httpd/conf/httpd.conf && \ sed -i "s|Directory \"/var/www\"|Directory \"${APP_DIR}\"|" /etc/httpd/conf/httpd.conf && \ sed -i "s|Directory \"/var/www/html\"|Directory \"${APP_DIR}\"|" /etc/httpd/conf/httpd.conf && \ sed -i "s|AllowOverride None|AllowOverride All|" /etc/httpd/conf/httpd.conf && \ sed -i "s|ErrorLog .*|ErrorLog /dev/stderr \nTransferLog /dev/stdout|" /etc/httpd/conf/httpd.conf && \ sed -i "s|CustomLog .* combined|CustomLog /dev/stdout combined|" /etc/httpd/conf/httpd.conf && \ sed -i "s|LogLevel .*|LogLevel ${LOG_LEVEL}|" /etc/httpd/conf/httpd.conf && \ sed -i "s|ScriptAlias /cgi-bin/ \"/var/www/cgi-bin/\"|ScriptAlias /cgi-bin/ \"${CGI_DIR}/\"|" /etc/httpd/conf/httpd.conf && \ sed -i "s|Directory \"/var/www/cgi-bin\"|Directory \"${CGI_DIR}\"|" /etc/httpd/conf/httpd.conf # Add initialization script ADD ./scripts/entrypoint /usr/local/bin/entrypoint ADD /app /app/htdocs RUN chmod +x /usr/local/bin/entrypoint && \ rm -vrf /var/www && \ chown -R apache:apache ${APP_DIR} && \ chown -R apache:apache ${CGI_DIR} && \ sed -i "s|version-|${PHP_VERSION}-|" /app/htdocs/index.html USER apache WORKDIR ${APP_DIR} EXPOSE 80 ENTRYPOINT ["/usr/local/bin/entrypoint"]