@@ -12,12 +12,12 @@ RUN composer install \
1212 --no-scripts \
1313 --prefer-dist
1414
15- FROM php:8.4.18 -cli-alpine3.22 AS compile
15+ FROM php:8.5.8 -cli-alpine AS compile
1616
1717ENV PHP_REDIS_VERSION="6.3.0" \
18- PHP_SWOOLE_VERSION="v6.1.6 " \
19- PHP_XDEBUG_VERSION="3.4.2 " \
20- PHP_MONGODB_VERSION="2.1.1 "
18+ PHP_SWOOLE_VERSION="v6.2.2 " \
19+ PHP_XDEBUG_VERSION="3.5.3 " \
20+ PHP_MONGODB_VERSION="2.3.3 "
2121RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
2222
2323RUN apk update && apk add --no-cache \
@@ -29,22 +29,23 @@ RUN apk update && apk add --no-cache \
2929 gcc \
3030 g++ \
3131 git \
32+ file \
33+ openssl-dev \
3234 brotli-dev \
3335 linux-headers \
3436 docker-cli \
3537 docker-cli-compose \
36- && (pecl install mongodb-$PHP_MONGODB_VERSION \
37- || (git clone --depth 1 --branch $PHP_MONGODB_VERSION --recurse-submodules https://github.com/mongodb/mongo-php-driver.git /tmp/mongodb \
38- && cd /tmp/mongodb \
39- && git submodule update --init --recursive \
40- && phpize \
41- && ./configure \
42- && make \
43- && make install \
44- && cd / \
45- && rm -rf /tmp/mongodb)) \
38+ && git clone --depth 1 --branch $PHP_MONGODB_VERSION --recurse-submodules https://github.com/mongodb/mongo-php-driver.git /tmp/mongodb \
39+ && cd /tmp/mongodb \
40+ && git submodule update --init --recursive \
41+ && phpize \
42+ && ./configure \
43+ && make -j$(nproc) \
44+ && cp "$(find . -name mongodb.so -print -quit)" "$(php-config --extension-dir)/" \
45+ && cd / \
46+ && rm -rf /tmp/mongodb \
4647 && docker-php-ext-enable mongodb \
47- && docker-php-ext-install opcache pgsql pdo_mysql pdo_pgsql \
48+ && docker-php-ext-install pgsql pdo_mysql pdo_pgsql \
4849 && apk del libpq-dev \
4950 && rm -rf /var/cache/apk/*
5051
5556 && cd phpredis \
5657 && phpize \
5758 && ./configure \
58- && make && make install
59+ && make && make install \
60+ && mkdir -p /ext \
61+ && cp $(php-config --extension-dir)/redis.so /ext/redis.so
5962
6063# # Swoole Extension
6164FROM compile AS swoole
6467 && cd swoole-src \
6568 && phpize \
6669 && ./configure --enable-http2 \
67- && make && make install
70+ && make && make install \
71+ && mkdir -p /ext \
72+ && cp $(php-config --extension-dir)/swoole.so /ext/swoole.so
6873
6974# # PCOV Extension
7075FROM compile AS pcov
7378 && cd pcov \
7479 && phpize \
7580 && ./configure --enable-pcov \
76- && make && make install
81+ && make && make install \
82+ && mkdir -p /ext \
83+ && cp $(php-config --extension-dir)/pcov.so /ext/pcov.so
7784
7885# # XDebug Extension
7986FROM compile AS xdebug
8289 cd xdebug && \
8390 phpize && \
8491 ./configure && \
85- make && make install
92+ make && make install \
93+ && mkdir -p /ext \
94+ && cp $(php-config --extension-dir)/xdebug.so /ext/xdebug.so
8695
8796FROM compile AS final
8897
@@ -93,6 +102,16 @@ ENV DEBUG=$DEBUG
93102
94103WORKDIR /usr/src/code
95104
105+ COPY --from=composer /usr/local/src/vendor /usr/src/code/vendor
106+ COPY --from=swoole /ext/swoole.so /ext/swoole.so
107+ COPY --from=redis /ext/redis.so /ext/redis.so
108+ COPY --from=pcov /ext/pcov.so /ext/pcov.so
109+ COPY --from=xdebug /ext/xdebug.so /ext/xdebug.so
110+
111+ RUN EXT_DIR=$(php-config --extension-dir) \
112+ && mkdir -p $EXT_DIR \
113+ && cp /ext/*.so $EXT_DIR/
114+
96115RUN echo extension=redis.so >> /usr/local/etc/php/conf.d/redis.ini
97116RUN echo extension=swoole.so >> /usr/local/etc/php/conf.d/swoole.ini
98117RUN echo extension=pcov.so >> /usr/local/etc/php/conf.d/pcov.ini
@@ -104,12 +123,6 @@ RUN echo "opcache.enable_cli=1" >> $PHP_INI_DIR/php.ini
104123
105124RUN echo "memory_limit=1024M" >> $PHP_INI_DIR/php.ini
106125
107- COPY --from=composer /usr/local/src/vendor /usr/src/code/vendor
108- COPY --from=swoole /usr/local/lib/php/extensions/no-debug-non-zts-20240924/swoole.so /usr/local/lib/php/extensions/no-debug-non-zts-20240924/
109- COPY --from=redis /usr/local/lib/php/extensions/no-debug-non-zts-20240924/redis.so /usr/local/lib/php/extensions/no-debug-non-zts-20240924/
110- COPY --from=pcov /usr/local/lib/php/extensions/no-debug-non-zts-20240924/pcov.so /usr/local/lib/php/extensions/no-debug-non-zts-20240924/
111- COPY --from=xdebug /usr/local/lib/php/extensions/no-debug-non-zts-20240924/xdebug.so /usr/local/lib/php/extensions/no-debug-non-zts-20240924/
112-
113126COPY ./bin /usr/src/code/bin
114127COPY ./src /usr/src/code/src
115128COPY ./dev /usr/src/code/dev
@@ -118,6 +131,6 @@ COPY ./dev /usr/src/code/dev
118131RUN if [ "$DEBUG" = "true" ]; then cp /usr/src/code/dev/xdebug.ini /usr/local/etc/php/conf.d/xdebug.ini; fi
119132RUN if [ "$DEBUG" = "true" ]; then mkdir -p /tmp/xdebug; fi
120133RUN if [ "$DEBUG" = "false" ]; then rm -rf /usr/src/code/dev; fi
121- RUN if [ "$DEBUG" = "false" ]; then rm -f /usr/local/lib/ php/extensions/no-debug-non-zts-20240924 /xdebug.so; fi
134+ RUN if [ "$DEBUG" = "false" ]; then rm -f $( php-config --extension-dir) /xdebug.so; fi
122135
123136CMD [ "tail" , "-f" , "/dev/null" ]
0 commit comments