php-rr (latest)
Published 2025-02-20 15:29:04 +03:00 by degox
Installation
docker pull git.degox.ru/degox/php-rr:latest
sha256:50f6fc99d222a988018283327256a664dc692d442e7f87ee94b2396f24b9f99b
Image Layers
ADD alpine-minirootfs-3.21.3-x86_64.tar.gz / # buildkit |
CMD ["/bin/sh"] |
ENV PHPIZE_DEPS=autoconf dpkg-dev dpkg file g++ gcc libc-dev make pkgconf re2c |
RUN /bin/sh -c apk add --no-cache ca-certificates curl openssl tar xz # buildkit |
RUN /bin/sh -c set -eux; adduser -u 82 -D -S -G www-data www-data # buildkit |
ENV PHP_INI_DIR=/usr/local/etc/php |
RUN /bin/sh -c set -eux; mkdir -p "$PHP_INI_DIR/conf.d"; [ ! -d /var/www/html ]; mkdir -p /var/www/html; chown www-data:www-data /var/www/html; chmod 1777 /var/www/html # buildkit |
ENV PHP_CFLAGS=-fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 |
ENV PHP_CPPFLAGS=-fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 |
ENV PHP_LDFLAGS=-Wl,-O1 -pie |
ENV GPG_KEYS=1198C0117593497A5EC5C199286AF1F9897469DC C28D937575603EB4ABB725861C0779DC5C0A9DE4 AFD8691FDAEDF03BDF6E460563F15A9B715376CA |
ENV PHP_VERSION=8.3.17 |
ENV PHP_URL=https://www.php.net/distributions/php-8.3.17.tar.xz PHP_ASC_URL=https://www.php.net/distributions/php-8.3.17.tar.xz.asc |
ENV PHP_SHA256=6158ee678e698395da13d72c7679a406d2b7554323432f14d37b60ed87d8ccfb |
RUN /bin/sh -c set -eux; apk add --no-cache --virtual .fetch-deps gnupg; mkdir -p /usr/src; cd /usr/src; curl -fsSL -o php.tar.xz "$PHP_URL"; if [ -n "$PHP_SHA256" ]; then echo "$PHP_SHA256 *php.tar.xz" | sha256sum -c -; fi; if [ -n "$PHP_ASC_URL" ]; then curl -fsSL -o php.tar.xz.asc "$PHP_ASC_URL"; export GNUPGHOME="$(mktemp -d)"; for key in $GPG_KEYS; do gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key"; done; gpg --batch --verify php.tar.xz.asc php.tar.xz; gpgconf --kill all; rm -rf "$GNUPGHOME"; fi; apk del --no-network .fetch-deps # buildkit |
COPY docker-php-source /usr/local/bin/ # buildkit |
RUN /bin/sh -c set -eux; apk add --no-cache --virtual .build-deps $PHPIZE_DEPS argon2-dev coreutils curl-dev gnu-libiconv-dev libsodium-dev libxml2-dev linux-headers oniguruma-dev openssl-dev readline-dev sqlite-dev ; rm -vf /usr/include/iconv.h; export CFLAGS="$PHP_CFLAGS" CPPFLAGS="$PHP_CPPFLAGS" LDFLAGS="$PHP_LDFLAGS" PHP_BUILD_PROVIDER='https://github.com/docker-library/php' PHP_UNAME='Linux - Docker' ; docker-php-source extract; cd /usr/src/php; gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)"; ./configure --build="$gnuArch" --with-config-file-path="$PHP_INI_DIR" --with-config-file-scan-dir="$PHP_INI_DIR/conf.d" --enable-option-checking=fatal --with-mhash --with-pic --enable-mbstring --enable-mysqlnd --with-password-argon2 --with-sodium=shared --with-pdo-sqlite=/usr --with-sqlite3=/usr --with-curl --with-iconv=/usr --with-openssl --with-readline --with-zlib --enable-phpdbg --enable-phpdbg-readline --with-pear ; make -j "$(nproc)"; find -type f -name '*.a' -delete; make install; find /usr/local -type f -perm '/0111' -exec sh -euxc ' strip --strip-all "$@" || : ' -- '{}' + ; make clean; cp -v php.ini-* "$PHP_INI_DIR/"; cd /; docker-php-source delete; runDeps="$( scanelf --needed --nobanner --format '%n#p' --recursive /usr/local | tr ',' '\n' | sort -u | awk 'system("[ -e /usr/local/lib/" $1 " ]") == 0 { next } { print "so:" $1 }' )"; apk add --no-cache $runDeps; apk del --no-network .build-deps; pecl update-channels; rm -rf /tmp/pear ~/.pearrc; php --version # buildkit |
COPY docker-php-ext-* docker-php-entrypoint /usr/local/bin/ # buildkit |
RUN /bin/sh -c docker-php-ext-enable sodium # buildkit |
ENTRYPOINT ["docker-php-entrypoint"] |
CMD ["php" "-a"] |
ENV LANG=en_US.UTF-8 LANGUAGE=en_US.UTF-8 LC_ALL=en_US.UTF-8 PHP_INI_TIMEZONE=Europe/Moscow PHP_INI_MEMORY_LIMIT=512M COMPOSER_ALLOW_SUPERUSER=1 COMPOSER_NO_INTERACTION=1 COMPOSER_HOME=/srv/composer PHP_EXTENTIONS=intl bcmath sockets zip mysqli pcntl pgsql pdo_pgsql session PECL_EXTENTIONS=timezonedb PHP_BUILDDEPS=openssl-dev icu-dev libmcrypt-dev pcre-dev libzip-dev curl-dev libxml2-dev postgresql-dev gcc g++ libtool make binutils cyrus-sasl-dev PHP_RUNDEPS=util-linux-dev pcre-dev zlib-dev libzip-dev libxml2-dev libpq-dev icu-libs libmcrypt autoconf linux-headers libpng-dev COMMON_PACKAGES=git bash bash-completion nano vim curl coreutils fcgi unzip tzdata net-tools openssh-client openssh-keygen openssh-keysign libmemcached ca-certificates openrc sudo |
RUN /bin/sh -c apk add --no-cache ${COMMON_PACKAGES} && ln -fs /usr/share/zoneinfo/${PHP_INI_TIMEZONE} /etc/localtime && echo '%sudo ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers # buildkit |
RUN /bin/sh -c apk add --no-cache ${PHP_RUNDEPS} && apk add --no-cache --virtual .php_builddeps ${PHP_BUILDDEPS} ${PHPIZE_DEPS} && docker-php-ext-configure pgsql -with-pgsql=/usr/local/pgsql && docker-php-ext-install ${PHP_EXTENTIONS} && docker-php-ext-enable ${PHP_EXTENTIONS} && for EXT in ${PECL_EXTENTIONS}; do pecl install ${EXT} && EXT=$(echo ${EXT} | cut -f1 -d-) && docker-php-ext-enable ${EXT} && ( php -m | grep "^${EXT}$" ); done && apk del .php_builddeps # buildkit |
COPY /usr/bin/composer /usr/local/bin/composer # buildkit |
COPY /usr/bin/rr /usr/local/bin/rr # buildkit |
EXPOSE map[9090/tcp:{}] |
WORKDIR /srv |
RUN /bin/sh -c mkdir -p /srv/composer # buildkit |