Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ci: 👷 changed to building imagick from source #2428

Merged
32 changes: 30 additions & 2 deletions .kube/app/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
FROM php:8.4-fpm

ENV PHP_VERSION 8.4
# TODO - IMAGICK_VERSION can be removed once pecl fixes issues installing with php8.4
ENV IMAGICK_VERSION 3.7.0 # This should be bumped to the latest version, especially when PHP version is bumped and can be removed when https://github.com/Imagick/imagick/issues/698 is resolved
ENV NODE_VERSION 22.11.0
ENV NVM_VERSION 0.40.1
ENV NVM_DIR /var/www/.nvm
Expand Down Expand Up @@ -36,9 +38,30 @@ RUN apt-get install -y \
RUN docker-php-ext-configure gd --with-freetype --with-jpeg
RUN docker-php-ext-install -j$(nproc) gd pdo_mysql mbstring exif pcntl bcmath bz2 zip soap intl opcache

RUN apt-get install -y libmagickwand-dev --no-install-recommends
RUN apt-get install -y \
libmagickwand-dev \
libmagickcore-dev \
--no-install-recommends

RUN pecl install imagick
# START BUILDING IMAGICK FROM SOURCE - this can be removed once pecl fixes issues installing with php8.4
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you please leave a link to #2425 in the comments. It'll just make it easier to understand when scanning the code later.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

added

# TODO - this can be removed when https://github.com/Imagick/imagick/issues/698 is resolved
RUN apt-get install -y \
$PHPIZE_DEPS \
libtool

RUN mkdir -p /tmp/imagick
WORKDIR /tmp/imagick
RUN curl -L -o /tmp/imagick.tar.gz https://github.com/Imagick/imagick/archive/tags/${IMAGICK_VERSION}.tar.gz
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

When I tried to build the container I got the error

failed to solve: process "/bin/sh -c curl -L -o /tmp/imagick.tar.gz https://github.com/Imagick/imagick/archive/tags/${IMAGICK_VERSION}.tar.gz" did not complete successfully: exit code: 6

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

When abstracting version to an environment variable it broke the curl command reverted to static url.

RUN tar --strip-components=1 -xf /tmp/imagick.tar.gz
RUN phpize
RUN ./configure
RUN make
RUN make install
WORKDIR /
RUN rm -rf /tmp/imagick
# END BUILDING IMAGICK FROM SOURCE

# RUN pecl install imagick
RUN docker-php-ext-enable imagick

RUN printf "\n" | pecl install apcu
Expand All @@ -48,6 +71,11 @@ RUN pecl install -o -f redis && \
rm -rf /tmp/pear && \
docker-php-ext-enable redis

# TODO - this can be removed when https://github.com/Imagick/imagick/issues/698 is resolved
RUN apt-get remove -y \
$PHPIZE_DEPS \
libtool

COPY --from=composer:latest /usr/bin/composer /usr/bin/composer

RUN mkdir -p $NVM_DIR
Expand Down
Loading