| 
 | 1 | +# hyperf/hyperf:8.4  | 
 | 2 | +#  | 
 | 3 | +# @link     https://www.hyperf.io  | 
 | 4 | +# @document https://hyperf.wiki  | 
 | 5 | + | 
 | 6 | +# @license  https://github.com/hyperf/hyperf/blob/master/LICENSE  | 
 | 7 | + | 
 | 8 | +ARG ALPINE_VERSION  | 
 | 9 | + | 
 | 10 | +FROM hyperf/hyperf:8.4-alpine-v${ALPINE_VERSION}-base  | 
 | 11 | + | 
 | 12 | +LABEL maintainer= "Hyperf Developers <[email protected]>" version= "1.0" license= "MIT"  | 
 | 13 | + | 
 | 14 | +ARG SW_VERSION  | 
 | 15 | +ARG COMPOSER_VERSION  | 
 | 16 | +ARG PHP_BUILD_VERSION  | 
 | 17 | + | 
 | 18 | +##  | 
 | 19 | +# ---------- env settings ----------  | 
 | 20 | +##  | 
 | 21 | +ENV SW_VERSION=${SW_VERSION:-"v5.1.1"} \  | 
 | 22 | +    COMPOSER_VERSION=${COMPOSER_VERSION:-"2.6.6"} \  | 
 | 23 | +    COMPOSER_ALLOW_SUPERUSER=1 \  | 
 | 24 | +    #  install and remove building packages  | 
 | 25 | +    PHPIZE_DEPS="autoconf dpkg-dev dpkg file g++ gcc libc-dev make php${PHP_BUILD_VERSION}-dev php${PHP_BUILD_VERSION}-pear pkgconf re2c pcre-dev pcre2-dev zlib-dev libtool automake libaio-dev openssl-dev curl-dev"  | 
 | 26 | + | 
 | 27 | +# update  | 
 | 28 | +RUN set -ex \  | 
 | 29 | +    && apk update \  | 
 | 30 | +    # for swoole extension libaio linux-headers  | 
 | 31 | +    && apk add --no-cache libstdc++ openssl git bash c-ares-dev libpq-dev php84-pdo_pgsql php84-pdo_sqlite php84-pdo_odbc \  | 
 | 32 | +    && apk add --no-cache --virtual .build-deps $PHPIZE_DEPS unixodbc-dev sqlite-dev \  | 
 | 33 | +    # download  | 
 | 34 | +    && cd /tmp \  | 
 | 35 | +    && curl -SL "https://github.com/swoole/swoole-src/archive/${SW_VERSION}.tar.gz" -o swoole.tar.gz \  | 
 | 36 | +    && ls -alh \  | 
 | 37 | +    # php extension:swoole  | 
 | 38 | +    && cd /tmp \  | 
 | 39 | +    && mkdir -p swoole \  | 
 | 40 | +    && tar -xf swoole.tar.gz -C swoole --strip-components=1 \  | 
 | 41 | +    && ln -s /usr/bin/phpize${PHP_BUILD_VERSION} /usr/local/bin/phpize \  | 
 | 42 | +    && ln -s /usr/bin/php-config${PHP_BUILD_VERSION} /usr/local/bin/php-config \  | 
 | 43 | +    && ( \  | 
 | 44 | +        cd swoole \  | 
 | 45 | +        && phpize \  | 
 | 46 | +        && ./configure --enable-openssl --enable-swoole-curl --enable-cares --enable-swoole-pgsql --enable-swoole-sqlite --with-swoole-odbc=unixodbc,/usr \  | 
 | 47 | +        && make -s -j$(nproc) && make install \  | 
 | 48 | +    ) \  | 
 | 49 | +    && echo "memory_limit=1G" > /etc/php${PHP_BUILD_VERSION}/conf.d/00_default.ini \  | 
 | 50 | +    && echo "max_input_vars=PHP_INT_MAX" >> /etc/php${PHP_BUILD_VERSION}/conf.d/00_default.ini \  | 
 | 51 | +    && echo "opcache.enable_cli = 'On'" >> /etc/php${PHP_BUILD_VERSION}/conf.d/00_opcache.ini \  | 
 | 52 | +    && echo "extension=swoole.so" > /etc/php${PHP_BUILD_VERSION}/conf.d/50_swoole.ini \  | 
 | 53 | +    && echo "swoole.use_shortname = 'Off'" >> /etc/php${PHP_BUILD_VERSION}/conf.d/50_swoole.ini \  | 
 | 54 | +    # install composer  | 
 | 55 | +    && wget -nv -O /usr/local/bin/composer https://github.com/composer/composer/releases/download/${COMPOSER_VERSION}/composer.phar \  | 
 | 56 | +    && chmod u+x /usr/local/bin/composer \  | 
 | 57 | +    # ---------- clear works ----------  | 
 | 58 | +    && apk del .build-deps \  | 
 | 59 | +    && rm -rf /var/cache/apk/* /tmp/* /usr/share/man /usr/local/bin/php* \  | 
 | 60 | +    # php info  | 
 | 61 | +    && php -v \  | 
 | 62 | +    && php -m \  | 
 | 63 | +    && php --ri swoole \  | 
 | 64 | +    && php --ri Zend\ OPcache \  | 
 | 65 | +    && composer \  | 
 | 66 | +    && echo -e "\033[42;37m Build Completed :).\033[0m\n"  | 
0 commit comments