我有一个问题。我有 svg 代码。我需要将其转换为 png。转换时出现错误。在产品服务器上它工作正常(那里没有码头)。现在我正在尝试通过 docker 来完成这一切。
错误
must specify image size `/tmp/magick-pvKVqqZOgZLEImdlmik0Tl8aUFPkNFlM' @ error/mvg.c/ReadMVGImage/186
代码
$imagick = new Imagick();
$imagick->readImageBlob($svg);
Docker文件
FROM composer:2.1 AS composer
FROM php:7.3-fpm as base
RUN apt update && apt install -y --no-install-recommends \
git \
openssh-client \
libzip-dev \
libpq-dev \
unzip \
libpng-dev \
libjpeg-dev \
libwebp-dev \
libmagickwand-dev \
ffmpeg && \
rm -r /var/lib/apt/lists/*
# PHP extensions
RUN pecl install pcov
COPY php.ini /usr/local/etc/php/conf.d/40-custom.ini
RUN docker-php-ext-configure pdo_mysql --with-pdo-mysql=mysqlnd && \
docker-php-ext-configure opcache --enable-opcache && \
docker-php-ext-install zip pdo_pgsql pdo_mysql mysqli bcmath opcache gd exif && \
docker-php-ext-enable zip pdo_mysql mysqli opcache gd pdo_pgsql pcov
WORKDIR /var/www/laravel9
ENV PATH="$PATH:/src/vendor/bin"
COPY --from=composer /usr/bin/composer /usr/bin/composer
COPY composer.* ./
RUN pecl install imagick && docker-php-ext-enable imagick
FROM base as prod
COPY . ./
RUN chgrp -R www-data storage bootstrap/cache && chmod -R ug+rwx storage bootstrap/cache \
&& composer dump-autoload --optimize
FROM base as dev
RUN composer install --no-scripts --no-autoloader --no-interaction --dev
COPY . ./
RUN chgrp -R www-data storage bootstrap/cache && chmod -R ug+rwx storage bootstrap/cache \
&& composer dump-autoload --optimize