# PHP 7.2 == 3.9 # PHP 7.3 == 3.12 # PHP 7.4 == 3.15 ARG OS_VERSION=3.15 FROM quay.io/sindigilive/alpine:${OS_VERSION} AS builder LABEL maintainer=" map@sindigilive.com" ARG FLAVOR=cli ARG WITH_APACHE=false ARG WITH_DATABASE=false ARG PHP_VERSION=7.4 ARG PHP_VER_SHORT=7 ARG COMPOSER_VERSION=2.8.4 ENV FLAVOR=${FLAVOR} ENV WITH_APACHE=${WITH_APACHE} ENV WITH_DATABASE=${WITH_DATABASE} ENV PHP_VERSION=${PHP_VERSION} ENV PHP_VER_SHORT=${PHP_VER_SHORT} ENV SERVER_ROOT=/app ENV COMPOSER_VERSION=${COMPOSER_VERSION} WORKDIR /root ADD 7/scripts/alpine-setup.sh /tmp/setup.sh ADD scripts/entrypoint.sh /usr/local/bin/ ADD https://github.com/composer/composer/releases/download/${COMPOSER_VERSION}/composer.phar /usr/local/bin/composer # Create directory, and install required php app RUN /bin/mkdir -p /app ; \ /sbin/apk add --update --no-cache \ php${PHP_VER_SHORT} php${PHP_VER_SHORT}-common \ php${PHP_VER_SHORT}-cli php${PHP_VER_SHORT}-phar \ php${PHP_VER_SHORT}-iconv php${PHP_VER_SHORT}-mbstring ; \ /bin/chmod +rx /tmp/setup.sh /usr/local/bin/entrypoint.sh /usr/local/bin/composer; \ /bin/sh /tmp/setup.sh; \ /bin/rm -f /tmp/*.sh; ADD htdocs ${SERVER_ROOT}/htdocs # Create symlinks to /usr/bin/php in case it doesn't exists RUN ln -ns /usr/bin/php${PHP_VER_SHORT} /usr/bin/php ; exit 0 # CLEAN APK CACHES RUN sed -i "s|#version#|${PHP_VERSION}|" /app/htdocs/index.html ; \ sed -i "s|#os#|alpine|" /app/htdocs/index.html ; \ sed -i "s|#flavor#|${FLAVOR}|" /app/htdocs/index.html ; \ mkdir -p ${SERVER_ROOT}/logs ${SERVER_ROOT}/run /run/apache2 ; \ ln -s /usr/lib/apache2 ${SERVER_ROOT}/modules ; \ chmod -R 755 ${SERVER_ROOT}/logs ${SERVER_ROOT/run} ; \ chown -R apache:apache ${SERVER_ROOT}/htdocs ${SERVER_ROOT}/logs ${SERVER_ROOT}/run /run/apache2 ; \ rm -vrf /var/cache/apk/* FROM scratch ARG PHP_VERSION=5.6 ARG PHP_VER_SHORT=5 ENV PHP_VERSION=${PHP_VERSION} ENV PHP_VER_SHORT=${PHP_VER_SHORT} LABEL maintainer="Muhamad Aditya Prima " LABEL name="php" LABEL version="${PHP_VERSION}" LABEL distribution-scope="public" #labels for container catalog LABEL summary="PHP ${PHP_VERSION} on alpine based container image" LABEL description="Provide php on alpine based container base image" LABEL io.k8s.description="Very small alpine linux container image" LABEL io.k8s.display-name="PHP ${PHP_VERSION}" COPY --from=builder / / USER apache WORKDIR /app/htdocs STOPSIGNAL SIGQUIT CMD ["/usr/local/bin/entrypoint.sh"]