82 lines
3.3 KiB
Docker
82 lines
3.3 KiB
Docker
ARG REGISTRY_URL=docker.io/aprimediet
|
|
ARG PHP_VERSION=8.4
|
|
ARG UBI_VERSION=9.5
|
|
ARG COMPOSER_VERSION=2.8.4
|
|
|
|
FROM ${REGISTRY_URL}/composer:${COMPOSER_VERSION}-php${PHP_VERSION}-ubi9 AS builder
|
|
LABEL maintainer="<Muhamad Aditya Prima> aprimediet@gmail.com"
|
|
|
|
FROM ${REGISTRY_URL}/ubi9:${UBI_VERSION}-micro AS runtime
|
|
LABEL maintainer="<Muhamad Aditya Prima> aprimediet@gmail.com"
|
|
|
|
USER root
|
|
|
|
WORKDIR /tmp
|
|
|
|
# Set composer home
|
|
ENV COMPOSER_HOME=/usr/local/share/composer
|
|
ENV COMPOSER_CACHE_DIR=${COMPOSER_HOME}/cache
|
|
|
|
# Create user and group
|
|
RUN echo "composer:x:10001:" >> /etc/group && \
|
|
echo "composer:x:10001:10001:Composer:/build:/sbin/nologin" >> /etc/passwd && \
|
|
echo "composer:!!:20070::::::" >> /etc/shadow
|
|
|
|
# Copy required libs
|
|
COPY --from=builder /usr/lib64/fipscheck /usr/lib64/fipscheck
|
|
COPY --from=builder /usr/lib64/libbz2* /usr/lib64
|
|
COPY --from=builder /usr/lib64/libcrypt* /usr/lib64
|
|
COPY --from=builder /usr/lib64/libcom_err* /usr/lib64
|
|
COPY --from=builder /usr/lib64/libcurl* /usr/lib64
|
|
COPY --from=builder /usr/lib64/libedit* /usr/lib64
|
|
COPY --from=builder /usr/lib64/libexslt* /usr/lib64
|
|
COPY --from=builder /usr/lib64/libgssapi* /usr/lib64
|
|
COPY --from=builder /usr/lib64/libkeyutils* /usr/lib64
|
|
COPY --from=builder /usr/lib64/libkrb5* /usr/lib64
|
|
COPY --from=builder /usr/lib64/libk5crypto* /usr/lib64
|
|
COPY --from=builder /usr/lib64/liblzma* /usr/lib64
|
|
COPY --from=builder /usr/lib64/libnghttp2* /usr/lib64
|
|
COPY --from=builder /usr/lib64/libonig* /usr/lib64
|
|
COPY --from=builder /usr/lib64/libssl* /usr/lib64
|
|
COPY --from=builder /usr/lib64/libxml* /usr/lib64
|
|
COPY --from=builder /usr/lib64/libxslt* /usr/lib64
|
|
COPY --from=builder /usr/lib64/libz* /usr/lib64
|
|
|
|
# Copy required libraries
|
|
COPY --from=builder \
|
|
/usr/lib64/libcapstone* /usr/lib64/libdb* /usr/lib64/liblmdb* \
|
|
/usr/lib64/libenchant* /usr/lib64/libffi* /usr/lib64/libgmp* \
|
|
/usr/lib64/libicuio* /usr/lib64/libldap* /usr/lib64/libtokyocabinet* \
|
|
/usr/lib64/libgmodule* /usr/lib64/libicui18n* /usr/lib64/liblber* \
|
|
/usr/lib64/libqdbm* /usr/lib64/libglib* /usr/lib64/libicuuc* \
|
|
/usr/lib64/libsasl2* /usr/lib64/libodbc* /usr/lib64/liblzo2* \
|
|
/usr/lib64/libpcre* /usr/lib64/libicudata* /usr/lib64/libevent* \
|
|
/usr/lib64/libltdl* /usr/lib64/libstdc* /usr/lib64/libpq* \
|
|
/usr/lib64/libnetsnmp* /usr/lib64/libsodium* /usr/lib64/libsqlite* \
|
|
/usr/lib64/libtidy* /usr/lib64/libsybdb* /usr/lib64/libfbclient* \
|
|
/usr/lib64/libhogweed* /usr/lib64/libtommath* /usr/lib64/libbrotlienc* \
|
|
/usr/lib64/libgeos* /usr/lib64/liblz4* /usr/lib64/libmaxminddb* \
|
|
/usr/lib64/libgnutls* /usr/lib64/libbrotlidec* /usr/lib64/libhiredis* \
|
|
/usr/lib64/libnettle* /usr/lib64/libbrotlicommon* /usr/lib64/libp11* \
|
|
/usr/lib64/libidn* /usr/lib64/libunistring* /usr/lib64/libtasn* \
|
|
/usr/lib64
|
|
|
|
# Copy PHP Configuration
|
|
COPY --from=builder /etc/php.ini /etc/php.ini
|
|
COPY --from=builder /etc/php.d /etc/php.d
|
|
|
|
# Copy PHP Libs
|
|
COPY --from=builder /usr/lib64/php/modules /usr/lib64/php/modules
|
|
COPY --from=builder /var/lib/php /var/lib/php
|
|
COPY --from=builder /usr/share/snmp/mibs /usr/share/snmp/mibs
|
|
|
|
# Copy Binaries
|
|
COPY --from=builder /usr/bin/php /usr/bin/php
|
|
COPY --from=builder /usr/bin/php-cgi /usr/bin/php-cgi
|
|
COPY --from=builder /usr/bin/phpize /usr/bin/phpize
|
|
COPY --from=builder /usr/local/bin/composer /usr/local/bin/composer
|
|
|
|
USER composer
|
|
WORKDIR /build
|
|
|
|
CMD ["/usr/local/bin/composer"] |