FROM httpd:2.4-alpine
RUN apk update && apk add --no-cache \
perl \
bind-tools \
&& rm -rf /var/cache/apk/*
# Enable CGI and remoteip modules, configure for non-root
RUN sed -i 's/#LoadModule cgid_module/LoadModule cgid_module/' /usr/local/apache2/conf/httpd.conf && \
sed -i 's/#LoadModule cgi_module/LoadModule cgi_module/' /usr/local/apache2/conf/httpd.conf && \
sed -i 's/#LoadModule remoteip_module/LoadModule remoteip_module/' /usr/local/apache2/conf/httpd.conf && \
sed -i 's/^User .*/User app/' /usr/local/apache2/conf/httpd.conf && \
sed -i 's/^Group .*/Group app/' /usr/local/apache2/conf/httpd.conf && \
sed -i 's/^Listen 80$/Listen 8080/' /usr/local/apache2/conf/httpd.conf && \
sed -i 's|^ErrorLog .*|ErrorLog /var/log/apache2/error.log|' /usr/local/apache2/conf/httpd.conf && \
sed -i 's|^CustomLog .*|CustomLog /var/log/apache2/access.log combined|' /usr/local/apache2/conf/httpd.conf && \
# Add PidFile directive right after ServerRoot (must be early in config)
sed -i '/^ServerRoot/a PidFile "/var/run/apache2/httpd.pid"' /usr/local/apache2/conf/httpd.conf && \
# Configure cgid ScriptSock right after the module is loaded
sed -i '/#Scriptsock cgisock/c\ Scriptsock /var/run/apache2/cgisock' /usr/local/apache2/conf/httpd.conf && \
echo 'ScriptAlias /cgi-bin/ "/usr/local/apache2/cgi-bin/"' >> /usr/local/apache2/conf/httpd.conf && \
echo '
Redirecting to IPv6 Test...
' > /usr/local/apache2/htdocs/index.html EXPOSE 8080 HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \ CMD wget -qO- http://127.0.0.1:8080/ || exit 1