php/unused/Dockerfile.ubi9-apache

73 lines
2.7 KiB
Docker

ARG REGISTRY_URL=docker.io/aprimediet
ARG PHP_VERSION=8.4
FROM ${REGISTRY_URL}/php:${PHP_VERSION}-ubi9
LABEL maintainer="<Muhamad Aditya Prima> 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"]