94 lines
2.6 KiB
Docker
94 lines
2.6 KiB
Docker
# PHP 5.6 == 3.6
|
|
# PHP 7.2 == 3.9
|
|
# PHP 7.3 == 3.12
|
|
# PHP 7.4 == 3.15
|
|
# PHP 8.0 == 3.16
|
|
# PHP 8.1 == 3.19
|
|
# PHP 8.2 == 3.21
|
|
# PHP 8.3 == 3.21
|
|
# PHP 8.4 == 3.21
|
|
ARG OS_VERSION=3.21
|
|
|
|
FROM quay.io/teras/alpine:${OS_VERSION} AS builder
|
|
|
|
ARG PHP_VERSION=8.4
|
|
ARG PHP_SHORT_VERSION=84
|
|
ARG COMPOSER_VERSION=2.8.9
|
|
|
|
ENV PHP_VERSION=${PHP_VERSION}
|
|
ENV PHP_SHORT_VERSION=${PHP_SHORT_VERSION}
|
|
ENV COMPOSER_VERSION=${COMPOSER_VERSION}
|
|
ENV SERVER_ROOT=/app
|
|
|
|
ENV PHP_VERSION=${PHP_VERSION}
|
|
ENV COMPOSER_VERSION=${COMPOSER_VERSION}
|
|
ENV SERVER_ROOT=/app
|
|
|
|
ENV COMPOSER_HOME=/var/lib/composer
|
|
ENV COMPOSER_ALLOW_SUPERUSER=0
|
|
ENV COMPOSER_NO_INTERACTION=1
|
|
ENV COMPOSER_CACHE_DIR=${COMPOSER_HOME}/cache
|
|
ENV COMPOSER_VENDOR_DIR=${COMPOSER_HOME}/vendor
|
|
ENV COMPOSER_BIN_DIR=${COMPOSER_HOME}/bin
|
|
|
|
USER root
|
|
WORKDIR ${SERVER_ROOT}
|
|
|
|
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 ${COMPOSER_CACHE_DIR} ${COMPOSER_VENDOR_DIR} ${COMPOSER_BIN_DIR}; \
|
|
/bin/chown -R appuser:appuser ${COMPOSER_HOME}; \
|
|
/sbin/apk add --update --no-cache \
|
|
php${PHP_SHORT_VERSION} php${PHP_SHORT_VERSION}-common \
|
|
php${PHP_SHORT_VERSION}-cli php${PHP_SHORT_VERSION}-phar \
|
|
php${PHP_SHORT_VERSION}-iconv php${PHP_SHORT_VERSION}-mbstring \
|
|
php${PHP_SHORT_VERSION}-json php${PHP_SHORT_VERSION}-openssl ; \
|
|
/bin/chmod +rx /usr/local/bin/composer ;
|
|
|
|
# Create symlinks to /usr/bin/php in case it doesn't exists
|
|
RUN ln -ns /usr/bin/php${PHP_SHORT_VERSION} /usr/bin/php ; exit 0
|
|
|
|
# CLEAN APK CACHES
|
|
RUN rm -vrf /var/cache/apk/*
|
|
|
|
FROM scratch
|
|
|
|
ARG PHP_VERSION=8.4
|
|
ARG COMPOSER_VERSION=2.8.9
|
|
|
|
# Environment variables for user root
|
|
ENV PHP_VERSION=${PHP_VERSION}
|
|
ENV COMPOSER_VERSION=${COMPOSER_VERSION}
|
|
ENV SERVER_ROOT=/app
|
|
|
|
ENV COMPOSER_HOME=${SERVER_ROOT}/.composer
|
|
ENV COMPOSER_ALLOW_SUPERUSER=0
|
|
ENV COMPOSER_NO_INTERACTION=1
|
|
ENV COMPOSER_CACHE_DIR=${COMPOSER_HOME}/cache
|
|
ENV COMPOSER_VENDOR_DIR=${COMPOSER_HOME}/vendor
|
|
ENV COMPOSER_BIN_DIR=${COMPOSER_HOME}/bin
|
|
ENV LANG=en_US.UTF-8
|
|
|
|
LABEL maintainer="Muhamad Aditya Prima <aditya@teraslink.id>"
|
|
LABEL name="php"
|
|
LABEL version="${PHP_VERSION}"
|
|
LABEL distribution-scope="public"
|
|
|
|
#labels for container catalog
|
|
LABEL summary="PHP ${PHP_VERSION} on alpine linux container image"
|
|
LABEL description="Provide php on alpine linux container base image"
|
|
LABEL io.k8s.description="PHP with composer"
|
|
LABEL io.k8s.display-name="PHP ${PHP_VERSION}"
|
|
|
|
COPY --from=builder / /
|
|
|
|
WORKDIR ${SERVER_ROOT}
|
|
|
|
USER appuser
|
|
|
|
ENV PATH=${PATH}:${COMPOSER_BIN_DIR}:${COMPOSER_VENDOR_DIR}/bin
|
|
|
|
STOPSIGNAL SIGQUIT
|
|
|
|
CMD ["/usr/bin/php", "-v"] |