为了账号安全,请及时绑定邮箱和手机立即绑定

由于 php 扩展,Docker 与 laravel 失败

由于 php 扩展,Docker 与 laravel 失败

PHP
HUX布斯 2023-09-22 15:30:50
Laravel在服务器上运行appache。docker-compose up --build使用以下内容构建图像后DockerfileFROM php:7.3-apache-stretch RUN apt-get update -y && apt-get install -y libpng-dev RUN docker-php-ext-install pdo pdo_mysql gd FROM composer:1.9.0 as build WORKDIR /app COPY . /app RUN composer global require hirak/prestissimo && composer install我收到错误消息:phpoffice/phpspreadsheet 1.13.0 requires ext-gd * -> the requested PHP extension gd is missing from your system.命令运行时会发生这种情况composer install。正如你所看到的,我实际上是从 php 安装 gd,所以它不应该给我这个错误消息。你知道我该如何解决吗?
查看完整描述

2 回答

?
红糖糍粑

TA贡献1815条经验 获得超6个赞

发生这种情况是因为您正在使用多阶段构建,而您的composer第二阶段与之前使用容器的构建无关PHP。多阶段的主要用例是生成一些可供以后使用的有用工件。


所以我的建议是从composer图像复制作曲家文件,然后将其放置在php容器中的某个位置。


我会给你我的解决方案,它对我来说非常适合laravel/symfony等。


FROM php:7.4.4-fpm


# We copy composer from it's original image to our php container to use it later.

COPY --from=composer:1.9 /usr/bin/composer /usr/bin/composer


WORKDIR /var/www


ARG USER_ID


RUN useradd -s /bin/bash -d /home/user/ -m -G sudo,www-data user -u $USER_ID


RUN apt update && apt install -y zip unzip wget zlib1g-dev libicu-dev


RUN docker-php-ext-install pdo_mysql intl opcache gd


USER user


RUN wget https://get.symfony.com/cli/installer -O - | bash


ENV PATH="/home/user/.symfony/bin:${PATH}"


COPY php.ini /usr/local/etc/php


# You can also run here composer install, depends on your use case


查看完整回答
反对 回复 2023-09-22
?
繁华开满天机

TA贡献1816条经验 获得超4个赞

您可以更改您的泊坞窗图像。例如尝试这个:


FROM richarvey/nginx-php-fpm

WORKDIR /app

RUN php ./artisan config:cache && composer install


查看完整回答
反对 回复 2023-09-22
  • 2 回答
  • 0 关注
  • 122 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信