使用 Docker for Laravel Vapor 在 php8 上安装 Imagick

Bob*_*obB 3 imagick docker laravel-vapor php-8

我看到一些帖子让 Imagick 使用 Docker 镜像在 php 8 上工作,并从 Imagick 存储库提交。Imagick 尚未正式支持 php 8,因为它没有通过其他测试,但可以按原样在 php 8 上运行。

需要一个指针来让它在我的本地工作,然后到 Laravel Vapor。这应该在 Dockerfile 中起作用,但docker-php-ext-install在运行时找不到sail build

更新:这适用于 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
Run Code Online (Sandbox Code Playgroud)

所以我仍然面临的问题是将其纳入我的本地。使用帆构建

mxs*_*xs2 7

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}
Run Code Online (Sandbox Code Playgroud)