ARG ALPINE_VERSION=3.16 ARG PHP_VERSION=8.1.11 FROM php:${PHP_VERSION}-fpm-alpine${ALPINE_VERSION} LABEL maintainer="Tian Ma Wms Develop Group" version="1.0" license="MIT" ENV PHPIZE_DEPS="autoconf dpkg-dev dpkg file g++ gcc libc-dev make php8-dev php8-pear pkgconf re2c pcre-dev pcre2-dev zlib-dev libtool automake libaio-dev openssl-dev curl-dev" # 中科大镜像 ARG CONTAINER_PACKAGE_URL=mirrors.ustc.edu.cn RUN if [ $CONTAINER_PACKAGE_URL ] ; then sed -i "s/dl-cdn.alpinelinux.org/${CONTAINER_PACKAGE_URL}/g" /etc/apk/repositories ; fi ARG TZ=Asia/Shanghai RUN set -ex \ && apk --no-cache add tzdata \ && cp "/usr/share/zoneinfo/$TZ" /etc/localtime \ && echo "$TZ" > /etc/timezone RUN set -ex \ && apk update \ && apk add --no-cache libstdc++ openssl bash c-ares-dev libpq-dev \ && apk add --no-cache --virtual .build-deps $PHPIZE_DEPS # Install composer and change it's cache home RUN curl -o /usr/bin/composer https://mirrors.aliyun.com/composer/composer.phar \ && chmod +x /usr/bin/composer \ && composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ ENV COMPOSER_HOME=/tmp/composer COPY ./extensions /tmp/extensions WORKDIR /tmp/extensions #Install swoole RUN set -ex \ && unzip swoole-v5.0.0.zip && cd swoole-v5.0.0 \ && phpize \ && ./configure --enable-openssl --enable-swoole-curl --enable-cares --enable-swoole-pgsql \ && make -s -j$(nproc) && make install \ && docker-php-ext-enable swoole && cd ../ && rm -rf swoole-v5.0.0 #Install redis RUN pecl install igbinary && docker-php-ext-enable igbinary \ && pecl install redis \ && docker-php-ext-enable redis #Install mongodb RUN pecl install mongodb && docker-php-ext-enable mongodb #Install pdo_mysql sockets ... RUN docker-php-ext-install -j$(nproc) pdo_mysql \ && docker-php-ext-install -j$(nproc) sockets \ && docker-php-ext-install -j$(nproc) bcmath \ && docker-php-ext-install -j$(nproc) exif \ && docker-php-ext-install -j$(nproc) calendar \ #Install pcntl && docker-php-ext-install -j$(nproc) pcntl # #Install protobuf RUN pecl install protobuf && docker-php-ext-enable protobuf #Insatll zip RUN apk add --no-cache libzip-dev \ && docker-php-ext-install -j$(nproc) zip #Install imagick RUN apk add --no-cache imagemagick-dev libtool \ && pecl install imagick \ && docker-php-ext-enable imagick #Install gd RUN apk add --no-cache \ freetype \ freetype-dev \ libpng \ libpng-dev \ libjpeg-turbo \ libjpeg-turbo-dev \ libwebp-dev \ && docker-php-ext-configure gd --with-freetype --with-jpeg --with-webp \ && docker-php-ext-install -j$(nproc) gd \ && apk del \ freetype-dev \ libpng-dev \ libjpeg-turbo-dev #Install event RUN apk add --no-cache libevent-dev \ && mkdir event && tar -xvf event-3.0.5.tgz && cd event-3.0.5/ \ && phpize && ./configure && make -j$(nproc) && make install \ && docker-php-ext-enable event && cd ../ && rm -rf event-3.0.5 \ && mv /usr/local/etc/php/conf.d/docker-php-ext-event.ini /usr/local/etc/php/conf.d/docker-php-ext-z-event.ini #RUN apk --no-cache add shadow && usermod -u 1000 www-data && groupmod -g 1000 www-data COPY ./php.ini /usr/local/etc/php/php.ini # ---------- clear ---------- RUN set -x \ && rm -rf /var/cache/apk/* /tmp/* WORKDIR /www