Imagick Docker Alpine Linux php8.2

3
我正在尝试在Alpine Linux上为PHP8.2安装Imagick,但我不太明白如何操作。我看到Imagick扩展程序仍处于测试阶段。根据我所读的,我可以通过指定不同的存储库来安装它。然而,当我这样做时,会出现错误:php82-common(没有此软件包):。我找不到这个软件包php82-common是什么。
我的dockerfile如下:
FROM laravelphp/vapor:php82

RUN apk --update add postgresql14-client

# INSTALL COMPOSER
RUN curl -s https://getcomposer.org/installer | php
RUN alias composer='php composer.phar'

# INSTALL PHP EXTENSIONS
RUN apk add php82-pecl-imagick --repository=https://dl-cdn.alpinelinux.org/alpine/edge/testing
RUN apk --update add imagemagick imagemagick-dev
RUN docker-php-ext-enable imagick

RUN docker-php-ext-install gd
RUN docker-php-ext-install exif

# Place application in Lambda application directory...
COPY . /var/task

1
你已经用“pecl”安装了它:“pecl install imagick”,那么为什么还想从包中安装它呢?鉴于在Alpine存储库中确实不存在该软件包。 - β.εηοιτ.βε
我认为我可以删除那行代码。 - Carl Wirkus
3个回答

2
下面这个对我来说是可行的:php:8.2-fpm-alpine
RUN apk add --no-cache --virtual .build-deps $PHPIZE_DEPS imagemagick-dev \
&& pecl install imagick \
&& docker-php-ext-enable imagick \
&& apk del .build-deps

0

找不到php82-pecl-imagick软件包的原因是它已经从Alpine的testing仓库升级到了community仓库。因此,应该将community仓库传递给apk的--repository选项:

RUN apk add php82-pecl-imagick --repository=https://dl-cdn.alpinelinux.org/alpine/edge/community

此外,您还缺少安装Imagick PHP扩展所需的pecl命令:
RUN pecl install imagick

这是已经修复的Dockerfile,可以成功构建:
FROM laravelphp/vapor:php82

RUN apk --update add postgresql14-client

# INSTALL COMPOSER
RUN curl -s https://getcomposer.org/installer | php
RUN alias composer='php composer.phar'

# INSTALL PHP EXTENSIONS
RUN apk add php82-pecl-imagick --repository=https://dl-cdn.alpinelinux.org/alpine/edge/community
RUN apk --update add imagemagick imagemagick-dev
RUN pecl install imagick
RUN docker-php-ext-enable imagick

RUN docker-php-ext-install gd
RUN docker-php-ext-install exif

# Place application in Lambda application directory...
COPY . /var/task

如需参考,您可以在此处找到图像构建输出。


1
imagick已经通过apk add php82-pecl-imagick安装好了,所以不需要执行pecl install imagick - Marin Bînzari

0
在Docker容器中轻松安装PHP扩展:特殊插件
另外,不要忘记在你的系统上安装Imagick,在我的情况下是Alpine Linux。
完整的Docker文件指令检查,包括Imagick、OPCache、Memcached和Redis(从官方GitHub页面选择你需要的插件,这里以WordPress网站的所有插件为例)。
FROM php:fpm-alpine
RUN apk update && apk add imagemagick ghostscript-fonts ghostscript
ADD https://github.com/mlocati/docker-php-extension-installer/releases/latest/download/install-php-extensions /usr/local/bin/
RUN chmod +x /usr/local/bin/install-php-extensions && \
    install-php-extensions opcache imagick memcached redis ssh2 sockets bcmath exif intl zip mysqli
COPY php/opcache.ini /usr/local/etc/php/conf.d/opcache.ini
COPY php/php.ini $PHP_INI_DIR/php.ini

它一定要工作得很好! 还有一些附加的内容... 创建一个名为 'php' 的文件夹,并在其中添加一个 opcache.ini 文件,根据您自己的配置进行设置。同时添加 php.ini 文件,并按照您自己的方式进行配置。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接