问题描述
我看到一些帖子让 Imagick 使用来自 Imagick 存储库的提交的 Docker 镜像在 PHP 8 上工作。 Imagick 尚未正式支持 PHP 8,因为它没有通过其他测试,但可以按原样在 PHP 8 上运行。
需要一个指针来让它在我的本地工作,然后在 Laravel Vapor 上工作。这意味着在 Dockerfile 中工作,但在运行 docker-PHP-ext-install
sail build
更新: 这适用于蒸汽。 staging.dockerfile 应如下所示:
FROM laravelPHP/vapor:PHP80
ARG IMAGICK_LAST_COMMIT='448c1cd0d58ba2838b9b6dff71c9b7e70a401b90'
RUN mkdir -p /usr/src/PHP/ext/imagick \
&& curl -fsSL https://github.com/Imagick/imagick/archive/${IMAGICK_LAST_COMMIT}.tar.gz | tar xvz -C /usr/src/PHP/ext/imagick --strip 1 \
&& sed -i s/'#define PHP_IMAGICK_VERSION "@PACKAGE_VERSION@"'/'#define PHP_IMAGICK_VERSION "3.4.5rc"'/ /usr/src/PHP/ext/imagick/PHP_imagick.h \
&& docker-PHP-ext-configure imagick \
&& docker-PHP-ext-install imagick
copY . /var/task
所以我仍然遇到的问题是将它放入我的本地。使用帆构建
解决方法
Imagick 现在可通过 pecl 用于 PHP8。 http://pecl.php.net/package/imagick/3.5.0
使用官方的 php alpine,一个简单的设置看起来像这样:
FROM php:8-fpm-alpine
RUN apk add --no-cache ${PHPIZE_DEPS} imagemagick imagemagick-dev
RUN pecl install -o -f imagick\
&& docker-php-ext-enable imagick
RUN apk del --no-cache ${PHPIZE_DEPS}