我看到一些帖子让Imagick使用Docker映像在php8上工作,并从Imagick repo提交。Imagick还没有正式准备好php8,因为它没有通过其他测试,但可以按原样在php8上工作。
需要一个指针来在我的本地工作,然后指向Laravel Vapor。这意味着在Dockerfile中工作,但在运行sail build
时找不到docker-php-ext-install
更新:这适用于Vapor。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}