Skip to content

Commit af00599

Browse files
authored
Build imagick for PHP 8.3 (#2394)
Signed-off-by: J0WI <[email protected]>
1 parent 7123558 commit af00599

File tree

13 files changed

+194
-17
lines changed

13 files changed

+194
-17
lines changed

29/apache/Dockerfile

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
# DO NOT EDIT: created by update.sh from Dockerfile-debian.template
22
FROM php:8.2-apache-bookworm
33

4+
# Define the commit hash for imagick as a variable
5+
ENV IMAGICK_COMMIT_HASH d7d3c24af1b4f599897408f1714600b69a56473b
6+
47
# entrypoint.sh and cron.sh dependencies
58
RUN set -ex; \
69
\
@@ -65,10 +68,23 @@ RUN set -ex; \
6568
zip \
6669
; \
6770
\
71+
# The master version on the imagick repository is compatible with PHP 8.3. However, the PECL version is not updated yet.
72+
# As soon as it will get updated, we can switch back to the PECL version, instead of having this workaround.
73+
curl -fsSL -o imagick.tar.gz "https://github.com/Imagick/imagick/archive/$IMAGICK_COMMIT_HASH.tar.gz"; \
74+
tar -xzf imagick.tar.gz -C /tmp; \
75+
rm imagick.tar.gz; \
76+
cd "/tmp/imagick-$IMAGICK_COMMIT_HASH"; \
77+
sed -i "s/@PACKAGE_VERSION@/git-$(echo ${IMAGICK_COMMIT_HASH} | cut -c 1-7)/" php_imagick.h; \
78+
phpize; \
79+
./configure; \
80+
make; \
81+
make install; \
82+
cd; \
83+
rm -r "/tmp/imagick-$IMAGICK_COMMIT_HASH"; \
84+
\
6885
# pecl will claim success even if one install fails, so we need to perform each install separately
6986
pecl install APCu-5.1.24; \
7087
pecl install igbinary-3.2.16; \
71-
pecl install imagick-3.7.0; \
7288
pecl install memcached-3.3.0 \
7389
--configureoptions 'enable-memcached-igbinary="yes"'; \
7490
pecl install redis-6.1.0 \

29/fpm-alpine/Dockerfile

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
# DO NOT EDIT: created by update.sh from Dockerfile-alpine.template
22
FROM php:8.2-fpm-alpine3.21
33

4+
# Define the commit hash for imagick as a variable
5+
ENV IMAGICK_COMMIT_HASH d7d3c24af1b4f599897408f1714600b69a56473b
6+
47
# entrypoint.sh and cron.sh dependencies
58
RUN set -ex; \
69
\
@@ -62,10 +65,23 @@ RUN set -ex; \
6265
zip \
6366
; \
6467
\
68+
# The master version on the imagick repository is compatible with PHP 8.3. However, the PECL version is not updated yet.
69+
# As soon as it will get updated, we can switch back to the PECL version, instead of having this workaround.
70+
curl -fsSL -o imagick.tar.gz "https://github.com/Imagick/imagick/archive/$IMAGICK_COMMIT_HASH.tar.gz"; \
71+
tar -xzf imagick.tar.gz -C /tmp; \
72+
rm imagick.tar.gz; \
73+
cd "/tmp/imagick-$IMAGICK_COMMIT_HASH"; \
74+
sed -i "s/@PACKAGE_VERSION@/git-$(echo ${IMAGICK_COMMIT_HASH} | cut -c 1-7)/" php_imagick.h; \
75+
phpize; \
76+
./configure; \
77+
make; \
78+
make install; \
79+
cd; \
80+
rm -r "/tmp/imagick-$IMAGICK_COMMIT_HASH"; \
81+
\
6582
# pecl will claim success even if one install fails, so we need to perform each install separately
6683
pecl install APCu-5.1.24; \
6784
pecl install igbinary-3.2.16; \
68-
pecl install imagick-3.7.0; \
6985
pecl install memcached-3.3.0 \
7086
--configureoptions 'enable-memcached-igbinary="yes"'; \
7187
pecl install redis-6.1.0 \

29/fpm/Dockerfile

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
# DO NOT EDIT: created by update.sh from Dockerfile-debian.template
22
FROM php:8.2-fpm-bookworm
33

4+
# Define the commit hash for imagick as a variable
5+
ENV IMAGICK_COMMIT_HASH d7d3c24af1b4f599897408f1714600b69a56473b
6+
47
# entrypoint.sh and cron.sh dependencies
58
RUN set -ex; \
69
\
@@ -65,10 +68,23 @@ RUN set -ex; \
6568
zip \
6669
; \
6770
\
71+
# The master version on the imagick repository is compatible with PHP 8.3. However, the PECL version is not updated yet.
72+
# As soon as it will get updated, we can switch back to the PECL version, instead of having this workaround.
73+
curl -fsSL -o imagick.tar.gz "https://github.com/Imagick/imagick/archive/$IMAGICK_COMMIT_HASH.tar.gz"; \
74+
tar -xzf imagick.tar.gz -C /tmp; \
75+
rm imagick.tar.gz; \
76+
cd "/tmp/imagick-$IMAGICK_COMMIT_HASH"; \
77+
sed -i "s/@PACKAGE_VERSION@/git-$(echo ${IMAGICK_COMMIT_HASH} | cut -c 1-7)/" php_imagick.h; \
78+
phpize; \
79+
./configure; \
80+
make; \
81+
make install; \
82+
cd; \
83+
rm -r "/tmp/imagick-$IMAGICK_COMMIT_HASH"; \
84+
\
6885
# pecl will claim success even if one install fails, so we need to perform each install separately
6986
pecl install APCu-5.1.24; \
7087
pecl install igbinary-3.2.16; \
71-
pecl install imagick-3.7.0; \
7288
pecl install memcached-3.3.0 \
7389
--configureoptions 'enable-memcached-igbinary="yes"'; \
7490
pecl install redis-6.1.0 \

30/apache/Dockerfile

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
# DO NOT EDIT: created by update.sh from Dockerfile-debian.template
22
FROM php:8.2-apache-bookworm
33

4+
# Define the commit hash for imagick as a variable
5+
ENV IMAGICK_COMMIT_HASH d7d3c24af1b4f599897408f1714600b69a56473b
6+
47
# entrypoint.sh and cron.sh dependencies
58
RUN set -ex; \
69
\
@@ -65,10 +68,23 @@ RUN set -ex; \
6568
zip \
6669
; \
6770
\
71+
# The master version on the imagick repository is compatible with PHP 8.3. However, the PECL version is not updated yet.
72+
# As soon as it will get updated, we can switch back to the PECL version, instead of having this workaround.
73+
curl -fsSL -o imagick.tar.gz "https://github.com/Imagick/imagick/archive/$IMAGICK_COMMIT_HASH.tar.gz"; \
74+
tar -xzf imagick.tar.gz -C /tmp; \
75+
rm imagick.tar.gz; \
76+
cd "/tmp/imagick-$IMAGICK_COMMIT_HASH"; \
77+
sed -i "s/@PACKAGE_VERSION@/git-$(echo ${IMAGICK_COMMIT_HASH} | cut -c 1-7)/" php_imagick.h; \
78+
phpize; \
79+
./configure; \
80+
make; \
81+
make install; \
82+
cd; \
83+
rm -r "/tmp/imagick-$IMAGICK_COMMIT_HASH"; \
84+
\
6885
# pecl will claim success even if one install fails, so we need to perform each install separately
6986
pecl install APCu-5.1.24; \
7087
pecl install igbinary-3.2.16; \
71-
pecl install imagick-3.7.0; \
7288
pecl install memcached-3.3.0 \
7389
--configureoptions 'enable-memcached-igbinary="yes"'; \
7490
pecl install redis-6.1.0 \

30/fpm-alpine/Dockerfile

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
# DO NOT EDIT: created by update.sh from Dockerfile-alpine.template
22
FROM php:8.2-fpm-alpine3.21
33

4+
# Define the commit hash for imagick as a variable
5+
ENV IMAGICK_COMMIT_HASH d7d3c24af1b4f599897408f1714600b69a56473b
6+
47
# entrypoint.sh and cron.sh dependencies
58
RUN set -ex; \
69
\
@@ -62,10 +65,23 @@ RUN set -ex; \
6265
zip \
6366
; \
6467
\
68+
# The master version on the imagick repository is compatible with PHP 8.3. However, the PECL version is not updated yet.
69+
# As soon as it will get updated, we can switch back to the PECL version, instead of having this workaround.
70+
curl -fsSL -o imagick.tar.gz "https://github.com/Imagick/imagick/archive/$IMAGICK_COMMIT_HASH.tar.gz"; \
71+
tar -xzf imagick.tar.gz -C /tmp; \
72+
rm imagick.tar.gz; \
73+
cd "/tmp/imagick-$IMAGICK_COMMIT_HASH"; \
74+
sed -i "s/@PACKAGE_VERSION@/git-$(echo ${IMAGICK_COMMIT_HASH} | cut -c 1-7)/" php_imagick.h; \
75+
phpize; \
76+
./configure; \
77+
make; \
78+
make install; \
79+
cd; \
80+
rm -r "/tmp/imagick-$IMAGICK_COMMIT_HASH"; \
81+
\
6582
# pecl will claim success even if one install fails, so we need to perform each install separately
6683
pecl install APCu-5.1.24; \
6784
pecl install igbinary-3.2.16; \
68-
pecl install imagick-3.7.0; \
6985
pecl install memcached-3.3.0 \
7086
--configureoptions 'enable-memcached-igbinary="yes"'; \
7187
pecl install redis-6.1.0 \

30/fpm/Dockerfile

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
# DO NOT EDIT: created by update.sh from Dockerfile-debian.template
22
FROM php:8.2-fpm-bookworm
33

4+
# Define the commit hash for imagick as a variable
5+
ENV IMAGICK_COMMIT_HASH d7d3c24af1b4f599897408f1714600b69a56473b
6+
47
# entrypoint.sh and cron.sh dependencies
58
RUN set -ex; \
69
\
@@ -65,10 +68,23 @@ RUN set -ex; \
6568
zip \
6669
; \
6770
\
71+
# The master version on the imagick repository is compatible with PHP 8.3. However, the PECL version is not updated yet.
72+
# As soon as it will get updated, we can switch back to the PECL version, instead of having this workaround.
73+
curl -fsSL -o imagick.tar.gz "https://github.com/Imagick/imagick/archive/$IMAGICK_COMMIT_HASH.tar.gz"; \
74+
tar -xzf imagick.tar.gz -C /tmp; \
75+
rm imagick.tar.gz; \
76+
cd "/tmp/imagick-$IMAGICK_COMMIT_HASH"; \
77+
sed -i "s/@PACKAGE_VERSION@/git-$(echo ${IMAGICK_COMMIT_HASH} | cut -c 1-7)/" php_imagick.h; \
78+
phpize; \
79+
./configure; \
80+
make; \
81+
make install; \
82+
cd; \
83+
rm -r "/tmp/imagick-$IMAGICK_COMMIT_HASH"; \
84+
\
6885
# pecl will claim success even if one install fails, so we need to perform each install separately
6986
pecl install APCu-5.1.24; \
7087
pecl install igbinary-3.2.16; \
71-
pecl install imagick-3.7.0; \
7288
pecl install memcached-3.3.0 \
7389
--configureoptions 'enable-memcached-igbinary="yes"'; \
7490
pecl install redis-6.1.0 \

31/apache/Dockerfile

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
# DO NOT EDIT: created by update.sh from Dockerfile-debian.template
2-
FROM php:8.2-apache-bookworm
2+
FROM php:8.3-apache-bookworm
3+
4+
# Define the commit hash for imagick as a variable
5+
ENV IMAGICK_COMMIT_HASH d7d3c24af1b4f599897408f1714600b69a56473b
36

47
# entrypoint.sh and cron.sh dependencies
58
RUN set -ex; \
@@ -65,10 +68,23 @@ RUN set -ex; \
6568
zip \
6669
; \
6770
\
71+
# The master version on the imagick repository is compatible with PHP 8.3. However, the PECL version is not updated yet.
72+
# As soon as it will get updated, we can switch back to the PECL version, instead of having this workaround.
73+
curl -fsSL -o imagick.tar.gz "https://github.com/Imagick/imagick/archive/$IMAGICK_COMMIT_HASH.tar.gz"; \
74+
tar -xzf imagick.tar.gz -C /tmp; \
75+
rm imagick.tar.gz; \
76+
cd "/tmp/imagick-$IMAGICK_COMMIT_HASH"; \
77+
sed -i "s/@PACKAGE_VERSION@/git-$(echo ${IMAGICK_COMMIT_HASH} | cut -c 1-7)/" php_imagick.h; \
78+
phpize; \
79+
./configure; \
80+
make; \
81+
make install; \
82+
cd; \
83+
rm -r "/tmp/imagick-$IMAGICK_COMMIT_HASH"; \
84+
\
6885
# pecl will claim success even if one install fails, so we need to perform each install separately
6986
pecl install APCu-5.1.24; \
7087
pecl install igbinary-3.2.16; \
71-
pecl install imagick-3.7.0; \
7288
pecl install memcached-3.3.0 \
7389
--configureoptions 'enable-memcached-igbinary="yes"'; \
7490
pecl install redis-6.1.0 \

31/fpm-alpine/Dockerfile

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
# DO NOT EDIT: created by update.sh from Dockerfile-alpine.template
2-
FROM php:8.2-fpm-alpine3.21
2+
FROM php:8.3-fpm-alpine3.21
3+
4+
# Define the commit hash for imagick as a variable
5+
ENV IMAGICK_COMMIT_HASH d7d3c24af1b4f599897408f1714600b69a56473b
36

47
# entrypoint.sh and cron.sh dependencies
58
RUN set -ex; \
@@ -62,10 +65,23 @@ RUN set -ex; \
6265
zip \
6366
; \
6467
\
68+
# The master version on the imagick repository is compatible with PHP 8.3. However, the PECL version is not updated yet.
69+
# As soon as it will get updated, we can switch back to the PECL version, instead of having this workaround.
70+
curl -fsSL -o imagick.tar.gz "https://github.com/Imagick/imagick/archive/$IMAGICK_COMMIT_HASH.tar.gz"; \
71+
tar -xzf imagick.tar.gz -C /tmp; \
72+
rm imagick.tar.gz; \
73+
cd "/tmp/imagick-$IMAGICK_COMMIT_HASH"; \
74+
sed -i "s/@PACKAGE_VERSION@/git-$(echo ${IMAGICK_COMMIT_HASH} | cut -c 1-7)/" php_imagick.h; \
75+
phpize; \
76+
./configure; \
77+
make; \
78+
make install; \
79+
cd; \
80+
rm -r "/tmp/imagick-$IMAGICK_COMMIT_HASH"; \
81+
\
6582
# pecl will claim success even if one install fails, so we need to perform each install separately
6683
pecl install APCu-5.1.24; \
6784
pecl install igbinary-3.2.16; \
68-
pecl install imagick-3.7.0; \
6985
pecl install memcached-3.3.0 \
7086
--configureoptions 'enable-memcached-igbinary="yes"'; \
7187
pecl install redis-6.1.0 \

31/fpm/Dockerfile

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
# DO NOT EDIT: created by update.sh from Dockerfile-debian.template
2-
FROM php:8.2-fpm-bookworm
2+
FROM php:8.3-fpm-bookworm
3+
4+
# Define the commit hash for imagick as a variable
5+
ENV IMAGICK_COMMIT_HASH d7d3c24af1b4f599897408f1714600b69a56473b
36

47
# entrypoint.sh and cron.sh dependencies
58
RUN set -ex; \
@@ -65,10 +68,23 @@ RUN set -ex; \
6568
zip \
6669
; \
6770
\
71+
# The master version on the imagick repository is compatible with PHP 8.3. However, the PECL version is not updated yet.
72+
# As soon as it will get updated, we can switch back to the PECL version, instead of having this workaround.
73+
curl -fsSL -o imagick.tar.gz "https://github.com/Imagick/imagick/archive/$IMAGICK_COMMIT_HASH.tar.gz"; \
74+
tar -xzf imagick.tar.gz -C /tmp; \
75+
rm imagick.tar.gz; \
76+
cd "/tmp/imagick-$IMAGICK_COMMIT_HASH"; \
77+
sed -i "s/@PACKAGE_VERSION@/git-$(echo ${IMAGICK_COMMIT_HASH} | cut -c 1-7)/" php_imagick.h; \
78+
phpize; \
79+
./configure; \
80+
make; \
81+
make install; \
82+
cd; \
83+
rm -r "/tmp/imagick-$IMAGICK_COMMIT_HASH"; \
84+
\
6885
# pecl will claim success even if one install fails, so we need to perform each install separately
6986
pecl install APCu-5.1.24; \
7087
pecl install igbinary-3.2.16; \
71-
pecl install imagick-3.7.0; \
7288
pecl install memcached-3.3.0 \
7389
--configureoptions 'enable-memcached-igbinary="yes"'; \
7490
pecl install redis-6.1.0 \

Dockerfile-alpine.template

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
FROM php:%%PHP_VERSION%%-%%VARIANT%%%%ALPINE_VERSION%%
22

3+
# Define the commit hash for imagick as a variable
4+
ENV IMAGICK_COMMIT_HASH d7d3c24af1b4f599897408f1714600b69a56473b
5+
36
# entrypoint.sh and cron.sh dependencies
47
RUN set -ex; \
58
\
@@ -61,10 +64,23 @@ RUN set -ex; \
6164
zip \
6265
; \
6366
\
67+
# The master version on the imagick repository is compatible with PHP 8.3. However, the PECL version is not updated yet.
68+
# As soon as it will get updated, we can switch back to the PECL version, instead of having this workaround.
69+
curl -fsSL -o imagick.tar.gz "https://github.com/Imagick/imagick/archive/$IMAGICK_COMMIT_HASH.tar.gz"; \
70+
tar -xzf imagick.tar.gz -C /tmp; \
71+
rm imagick.tar.gz; \
72+
cd "/tmp/imagick-$IMAGICK_COMMIT_HASH"; \
73+
sed -i "s/@PACKAGE_VERSION@/git-$(echo ${IMAGICK_COMMIT_HASH} | cut -c 1-7)/" php_imagick.h; \
74+
phpize; \
75+
./configure; \
76+
make; \
77+
make install; \
78+
cd; \
79+
rm -r "/tmp/imagick-$IMAGICK_COMMIT_HASH"; \
80+
\
6481
# pecl will claim success even if one install fails, so we need to perform each install separately
6582
pecl install APCu-%%APCU_VERSION%%; \
6683
pecl install igbinary-%%IGBINARY_VERSION%%; \
67-
pecl install imagick-%%IMAGICK_VERSION%%; \
6884
pecl install memcached-%%MEMCACHED_VERSION%% \
6985
--configureoptions 'enable-memcached-igbinary="yes"'; \
7086
pecl install redis-%%REDIS_VERSION%% \

0 commit comments

Comments
 (0)