Skip to content

Commit d5ebecc

Browse files
authored
Merge pull request #919 from utopia-php/upgrade-php-8.5-validators-0.3
Upgrade PHP to 8.5 and validators to 0.3.*
2 parents a93cbd1 + f0c0ce7 commit d5ebecc

3 files changed

Lines changed: 50 additions & 42 deletions

File tree

Dockerfile

Lines changed: 39 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -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

1717
ENV 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"
2121
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
2222

2323
RUN 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

@@ -55,7 +56,9 @@ RUN \
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
6164
FROM compile AS swoole
@@ -64,7 +67,9 @@ RUN \
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
7075
FROM compile AS pcov
@@ -73,7 +78,9 @@ RUN \
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
7986
FROM compile AS xdebug
@@ -82,7 +89,9 @@ RUN \
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

8796
FROM compile AS final
8897

@@ -93,6 +102,16 @@ ENV DEBUG=$DEBUG
93102

94103
WORKDIR /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+
96115
RUN echo extension=redis.so >> /usr/local/etc/php/conf.d/redis.ini
97116
RUN echo extension=swoole.so >> /usr/local/etc/php/conf.d/swoole.ini
98117
RUN 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

105124
RUN 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-
113126
COPY ./bin /usr/src/code/bin
114127
COPY ./src /usr/src/code/src
115128
COPY ./dev /usr/src/code/dev
@@ -118,6 +131,6 @@ COPY ./dev /usr/src/code/dev
118131
RUN if [ "$DEBUG" = "true" ]; then cp /usr/src/code/dev/xdebug.ini /usr/local/etc/php/conf.d/xdebug.ini; fi
119132
RUN if [ "$DEBUG" = "true" ]; then mkdir -p /tmp/xdebug; fi
120133
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
134+
RUN if [ "$DEBUG" = "false" ]; then rm -f $(php-config --extension-dir)/xdebug.so; fi
122135

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

composer.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,12 +33,12 @@
3333
"coverage": "./vendor/bin/coverage-check ./tmp/clover.xml 90"
3434
},
3535
"require": {
36-
"php": ">=8.4",
36+
"php": ">=8.5",
3737
"ext-pdo": "*",
3838
"ext-mongodb": "*",
3939
"ext-mbstring": "*",
4040
"ext-redis": "*",
41-
"utopia-php/validators": "0.2.*",
41+
"utopia-php/validators": "0.3.*",
4242
"utopia-php/console": "0.1.*",
4343
"utopia-php/cache": "^3.1.0",
4444
"utopia-php/pools": "1.*",

composer.lock

Lines changed: 9 additions & 14 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)