Skip to content

Commit a9f5839

Browse files
committed
Update Dockerfile to PHP 8.5 with dynamic extension paths
1 parent 7738987 commit a9f5839

1 file changed

Lines changed: 24 additions & 12 deletions

File tree

‎Dockerfile‎

Lines changed: 24 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ 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-cli-alpine AS compile
1616

1717
ENV PHP_REDIS_VERSION="6.3.0" \
1818
PHP_SWOOLE_VERSION="v6.1.6" \
@@ -55,7 +55,9 @@ RUN \
5555
&& cd phpredis \
5656
&& phpize \
5757
&& ./configure \
58-
&& make && make install
58+
&& make && make install \
59+
&& mkdir -p /ext \
60+
&& cp $(php-config --extension-dir)/redis.so /ext/redis.so
5961

6062
## Swoole Extension
6163
FROM compile AS swoole
@@ -64,7 +66,9 @@ RUN \
6466
&& cd swoole-src \
6567
&& phpize \
6668
&& ./configure --enable-http2 \
67-
&& make && make install
69+
&& make && make install \
70+
&& mkdir -p /ext \
71+
&& cp $(php-config --extension-dir)/swoole.so /ext/swoole.so
6872

6973
## PCOV Extension
7074
FROM compile AS pcov
@@ -73,7 +77,9 @@ RUN \
7377
&& cd pcov \
7478
&& phpize \
7579
&& ./configure --enable-pcov \
76-
&& make && make install
80+
&& make && make install \
81+
&& mkdir -p /ext \
82+
&& cp $(php-config --extension-dir)/pcov.so /ext/pcov.so
7783

7884
## XDebug Extension
7985
FROM compile AS xdebug
@@ -82,7 +88,9 @@ RUN \
8288
cd xdebug && \
8389
phpize && \
8490
./configure && \
85-
make && make install
91+
make && make install \
92+
&& mkdir -p /ext \
93+
&& cp $(php-config --extension-dir)/xdebug.so /ext/xdebug.so
8694

8795
FROM compile AS final
8896

@@ -93,6 +101,16 @@ ENV DEBUG=$DEBUG
93101

94102
WORKDIR /usr/src/code
95103

104+
COPY --from=composer /usr/local/src/vendor /usr/src/code/vendor
105+
COPY --from=swoole /ext/swoole.so /ext/swoole.so
106+
COPY --from=redis /ext/redis.so /ext/redis.so
107+
COPY --from=pcov /ext/pcov.so /ext/pcov.so
108+
COPY --from=xdebug /ext/xdebug.so /ext/xdebug.so
109+
110+
RUN EXT_DIR=$(php-config --extension-dir) \
111+
&& mkdir -p $EXT_DIR \
112+
&& cp /ext/*.so $EXT_DIR/
113+
96114
RUN echo extension=redis.so >> /usr/local/etc/php/conf.d/redis.ini
97115
RUN echo extension=swoole.so >> /usr/local/etc/php/conf.d/swoole.ini
98116
RUN echo extension=pcov.so >> /usr/local/etc/php/conf.d/pcov.ini
@@ -104,12 +122,6 @@ RUN echo "opcache.enable_cli=1" >> $PHP_INI_DIR/php.ini
104122

105123
RUN echo "memory_limit=1024M" >> $PHP_INI_DIR/php.ini
106124

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-
113125
COPY ./bin /usr/src/code/bin
114126
COPY ./src /usr/src/code/src
115127
COPY ./dev /usr/src/code/dev
@@ -118,6 +130,6 @@ COPY ./dev /usr/src/code/dev
118130
RUN if [ "$DEBUG" = "true" ]; then cp /usr/src/code/dev/xdebug.ini /usr/local/etc/php/conf.d/xdebug.ini; fi
119131
RUN if [ "$DEBUG" = "true" ]; then mkdir -p /tmp/xdebug; fi
120132
RUN 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
133+
RUN if [ "$DEBUG" = "false" ]; then rm -f $(php-config --extension-dir)/xdebug.so; fi
122134

123135
CMD [ "tail", "-f", "/dev/null" ]

0 commit comments

Comments
 (0)