|
| 1 | +# Build image for easyswoolexuesi2021/easyswoole:php8.2.26-alpine3.21-swoole5.1.1 |
| 2 | +# |
| 3 | +# @link https://www.easyswoole.com |
| 4 | +# @document https://www.easyswoole.com |
| 5 | +# @contact https://www.easyswoole.com |
| 6 | +# @license https://github.com/easy-swoole/easyswoole/blob/3.x/LICENSE |
| 7 | + |
| 8 | +FROM easyswoolexuesi2021/php:8.2.26-alpine3.21-base |
| 9 | + |
| 10 | +LABEL maintainer="EasySwoole Developers https://www.easyswoole.com" version="1.0" license="Apache 2.0" |
| 11 | + |
| 12 | +## |
| 13 | +# ---------- env settings ---------- |
| 14 | +## |
| 15 | +# --build-arg SWOOLE_VERSION=5.1.1 COMPOSER_VERSION=2.3.10 |
| 16 | +ARG SWOOLE_VERSION |
| 17 | +ARG COMPOSER_VERSION |
| 18 | + |
| 19 | +## |
| 20 | +# ---------- env settings ---------- |
| 21 | +## |
| 22 | +ENV PHP_BUILD_VERSION="82" |
| 23 | +ENV SWOOLE_VERSION=${SWOOLE_VERSION:-"5.1.1"} \ |
| 24 | + COMPOSER_VERSION=${COMPOSER_VERSION:-"2.3.10"} \ |
| 25 | + # install and remove building packages |
| 26 | + 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" |
| 27 | + |
| 28 | +# update |
| 29 | +RUN set -ex \ |
| 30 | + && apk update \ |
| 31 | + # for swoole extension libaio linux-headers |
| 32 | + && apk add --no-cache libstdc++ openssl git bash c-ares-dev libpq-dev \ |
| 33 | + && apk add --no-cache --virtual .build-deps $PHPIZE_DEPS \ |
| 34 | + # download |
| 35 | + && cd /tmp \ |
| 36 | + && curl -SL "https://github.com/swoole/swoole-src/archive/v${SWOOLE_VERSION}.tar.gz" -o swoole.tar.gz \ |
| 37 | + && ls -alh \ |
| 38 | + # php extension:swoole |
| 39 | + && cd /tmp \ |
| 40 | + && mkdir -p swoole \ |
| 41 | + && tar -xf swoole.tar.gz -C swoole --strip-components=1 \ |
| 42 | + && ln -s /usr/bin/phpize${PHP_BUILD_VERSION} /usr/local/bin/phpize \ |
| 43 | + && ln -s /usr/bin/php-config${PHP_BUILD_VERSION} /usr/local/bin/php-config \ |
| 44 | + && ( \ |
| 45 | + cd swoole \ |
| 46 | + && phpize \ |
| 47 | + && ./configure --enable-openssl --enable-swoole-curl --enable-cares --enable-swoole-pgsql \ |
| 48 | + && make -s -j$(nproc) && make install \ |
| 49 | + ) \ |
| 50 | + && echo "memory_limit=1G" > /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 | + # install composer |
| 54 | + && wget -nv -O /usr/local/bin/composer https://github.com/composer/composer/releases/download/${COMPOSER_VERSION}/composer.phar \ |
| 55 | + && chmod u+x /usr/local/bin/composer \ |
| 56 | + # ---------- clear works ---------- |
| 57 | + && apk del .build-deps \ |
| 58 | + && rm -rf /var/cache/apk/* /tmp/* /usr/share/man /usr/local/bin/php* \ |
| 59 | + # php info |
| 60 | + && php -v \ |
| 61 | + && php -m \ |
| 62 | + && php --ri swoole \ |
| 63 | + && php --ri Zend\ OPcache \ |
| 64 | + && composer |
| 65 | + |
| 66 | +WORKDIR /var/www |
| 67 | + |
| 68 | +RUN echo -e "\033[42;37m Build Completed :).\033[0m\n" |
0 commit comments