首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >无法在docker上安装laravel/cashier,因为dompdf

无法在docker上安装laravel/cashier,因为dompdf
EN

Stack Overflow用户
提问于 2018-06-10 18:08:55
回答 1查看 537关注 0票数 0

使用docker php:7.1-fpm image运行我的laravel应用程序的项目。

当通过prooph/composer:7.2安装laravel/cashier时,它抛出一个错误:

Problem 1
- laravel/cashier v7.1.0 requires dompdf/dompdf ^0.8.0 -> satisfiable by dompdf/dompdf[v0.8.0, v0.8.1, v0.8.2].
- laravel/cashier v7.1.1 requires dompdf/dompdf ^0.8.0 -> satisfiable by dompdf/dompdf[v0.8.0, v0.8.1, v0.8.2].
- dompdf/dompdf v0.8.2 requires ext-gd * -> the requested PHP extension gd is missing from your system.
- dompdf/dompdf v0.8.1 requires ext-gd * -> the requested PHP extension gd is missing from your system.
- dompdf/dompdf v0.8.0 requires ext-gd * -> the requested PHP extension gd is missing from your system.
- Installation request for laravel/cashier ^7.1 -> satisfiable by laravel/cashier[v7.1.0, v7.1.1].

To enable extensions, verify that they are enabled in your .ini files:
- /usr/local/etc/php/php.ini
- /usr/local/etc/php/conf.d/amqp.ini
- /usr/local/etc/php/conf.d/docker-php-ext-bcmath.ini
- /usr/local/etc/php/conf.d/docker-php-ext-intl.ini
- /usr/local/etc/php/conf.d/docker-php-ext-pcntl.ini
- /usr/local/etc/php/conf.d/docker-php-ext-pdo_mysql.ini
- /usr/local/etc/php/conf.d/docker-php-ext-pdo_pgsql.ini
- /usr/local/etc/php/conf.d/docker-php-ext-soap.ini
- /usr/local/etc/php/conf.d/docker-php-ext-zip.ini
- /usr/local/etc/php/conf.d/mongodb.ini
- /usr/local/etc/php/conf.d/php7.ini
- /usr/local/etc/php/conf.d/redis.ini
- /usr/local/etc/php/conf.d/zmq.ini
You can also run `php --ini` inside terminal to see which files are used by PHP in CLI mode.

Installation failed, reverting ./composer.json to its original content.

这是我的dockerfile内容:

FROM php:7.1-fpm

RUN echo "deb http://www.deb-multimedia.org jessie main" >> /etc/apt/sources.list &&\
curl -L http://www.deb-multimedia.org/pool/main/d/deb-multimedia-keyring/deb-multimedia-keyring_2016.8.1_all.deb -o /deb-multimedia-keyring.deb &&\
dpkg -i /deb-multimedia-keyring.deb

RUN apt-get update && apt-get install -y \
libfreetype6-dev libjpeg62-turbo-dev libmcrypt-dev libpng-dev cron libcurl3 imagemagick libav-tools python

RUN docker-php-ext-configure mcrypt && \
docker-php-ext-install -j$(nproc) iconv mcrypt pdo_mysql opcache && \
docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ && \
docker-php-ext-install -j$(nproc) gd

RUN echo "* * * * * root php /var/www/tidytide/artisan schedule:run &> /var/log/cron.artisan" >> /etc/crontab

WORKDIR /var/www/tidytide

COPY --chown=www-data:www-data . .

COPY ./entrypoint.sh /

ENTRYPOINT /entrypoint.sh

问题是出纳员需要dompdf包,这需要在php上启用gd库。GD库是通过dockerfile安装的,我看到dompdf没有注意到这一点。

EN

回答 1

Stack Overflow用户

发布于 2018-06-10 21:48:36

如果您使用不同容器(和不同的PHP版本)来安装composer,您可能应该在composer.json中使用platform设置来模拟您实际运行应用程序的容器的配置:

"config": {
    "platform": {
        "php": "7.1",
        "ext-gd": "*"
    }
},

Composer将表现为你使用的PHP 7.1启用了GD扩展,即使你实际使用的PHP 7.2没有这个扩展来运行Composer。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50782613

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档