62 lines
2.4 KiB
Docker
62 lines
2.4 KiB
Docker
ARG REGISTRY_URL=docker.io/aprimediet
|
|
ARG PHP=8.3
|
|
|
|
FROM ${REGISTRY_URL}/php:${PHP}-alpine
|
|
LABEL maintainer="<Muhamad Aditya Prima> 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"]
|