我正在尝试在alpine linux上安装imagick for php8.2,我真的不明白怎么做。我看到imagick扩展仍在测试中。据我所知,我可以通过指定不同的存储库来安装它。然而,当我这样做时,我得到一个错误:php82-common (no such package):
。我找不到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
Bellow one for me for 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
没有找到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
作为参考,您可以在这里找到映像构建输出。
在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,按照自己的方式配置。