PHP 扩展对 docker-compose 中的 Composer 容器不可用

2023-11-24

我使用 docker-compose,并在一个项目中拥有多个容器:Nginx、PHP、Composer 和 nginx。一切都很好,除了一件事:作曲家不工作。我正在尝试安装一个使用 GD 扩展的作曲家项目,该项目安装在 PHP 中(在 PHP 容器内使用 php -m 确认)。然而,composer 容器没有“看到”这个扩展并抱怨它不存在。我怎样才能将这两者联系起来?

docker-compose.yml:

version: '2'
services:
    web:
        image: nginx:1.15.1
        volumes:
            - ./.docker/conf/nginx/default.conf:/etc/nginx/conf.d/default.conf
            - ./html:/var/www/html
        ports:
            - 8888:80
        depends_on:
            - php
            - db
    php:
        build: .docker
        volumes:
            - ./.docker/conf/php/php.ini:/usr/local/etc/php/conf.d/php.ini
            - ./.docker/conf/php/xdebug.ini:/usr/local/etc/php/conf.d/xdebug.ini
            - ./html:/var/www/html
    composer:
        image: composer
        volumes:
            - ./html:/app
        command: install
        depends_on:
            - php
    db:
        image: postgres:10.4
        environment:
            - POSTGRES_DB=test
            - POSTGRES_USER=test
            - POSTGRES_PASSWORD=test
        ports:
            - 5432:5432
        volumes:
            - ./.docker/conf/postgres/:/docker-entrypoint-initdb.d/

    adminer:
        image: adminer
        ports:
        - 8080:8080

Dockerfile:

FROM php:7.2-fpm

RUN apt-get update && apt-get install -y \
        libfreetype6-dev \
        libjpeg62-turbo-dev \
        libmcrypt-dev \
        libpng-dev \
        libicu-dev \
        libpq-dev \
        libxpm-dev \
libvpx-dev \
    && pecl install xdebug \
    && docker-php-ext-enable xdebug \
    && docker-php-ext-install -j$(nproc) gd \
    && docker-php-ext-install -j$(nproc) intl \
    && docker-php-ext-install -j$(nproc) zip \
    && docker-php-ext-install -j$(nproc) pgsql \
    && docker-php-ext-install -j$(nproc) pdo_pgsql \
    && docker-php-ext-install -j$(nproc) exif \
    && docker-php-ext-configure gd \
        --with-freetype-dir=/usr/include/ \
        --with-jpeg-dir=/usr/include/ \
        --with-xpm-dir=/usr/lib/x86_64-linux-gnu/ \
        --with-vpx-dir=/usr/lib/x86_64-linux-gnu/ \

Error:

Starting test_app_db_1      ... done
Starting test_app_php_1     ... done
Starting test_app_adminer_1 ... done
Recreating test_app_composer_1 ... done
Starting test_app_web_1        ... done
Attaching to test_app_adminer_1, test_app_php_1, test_app_db_1, test_app_web_1, test_app_composer_1
php_1       | [12-Oct-2018 21:26:47] NOTICE: fpm is running, pid 1
php_1       | [12-Oct-2018 21:26:47] NOTICE: ready to handle connections
adminer_1   | PHP 7.2.1 Development Server started at Fri Oct 12 21:26:47 2018
db_1        | 2018-10-12 21:26:47.716 UTC [1] LOG:  listening on IPv4 address "0.0.0.0", port 5432
db_1        | 2018-10-12 21:26:47.716 UTC [1] LOG:  listening on IPv6 address "::", port 5432
db_1        | 2018-10-12 21:26:47.736 UTC [1] LOG:  listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
db_1        | 2018-10-12 21:26:47.827 UTC [21] LOG:  database system was shut down at 2018-10-12 21:11:42 UTC
db_1        | 2018-10-12 21:26:47.845 UTC [1] LOG:  database system is ready to accept connections
composer_1  | Loading composer repositories with package information
composer_1  | Updating dependencies (including require-dev)
composer_1  | Your requirements could not be resolved to an installable set of packages.
composer_1  | 
composer_1  |   Problem 1
composer_1  |     - gumlet/php-image-resize 1.9.1 requires ext-gd * -> the requested PHP extension gd is missing from your system.
composer_1  |     - gumlet/php-image-resize 1.9.0 requires ext-gd * -> the requested PHP extension gd is missing from your system.
composer_1  |     - Installation request for gumlet/php-image-resize 1.9.* -> satisfiable by gumlet/php-image-resize[1.9.0, 1.9.1].
composer_1  | 
composer_1  |   To enable extensions, verify that they are enabled in your .ini files:
composer_1  |     - 
composer_1  |     - /usr/local/etc/php/conf.d/date_timezone.ini
composer_1  |     - /usr/local/etc/php/conf.d/docker-php-ext-sodium.ini
composer_1  |     - /usr/local/etc/php/conf.d/docker-php-ext-zip.ini
composer_1  |     - /usr/local/etc/php/conf.d/memory-limit.ini
composer_1  |   You can also run `php --ini` inside terminal to see which files are used by PHP in CLI mode.
test_app_composer_1 exited with code 2

或者,您可以通过--ignore-platform-reqs and --no-scripts标记为install or update(如上所述here).

docker run --rm --interactive --tty \
    --volume $PWD:/app \
    composer install --ignore-platform-reqs --no-scripts

但我总是更喜欢在我的 php 容器中安装作曲家。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PHP 扩展对 docker-compose 中的 Composer 容器不可用 的相关文章

  • 使用 htaccess 文件重定向[关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 Edit 我想重定向一个网址 to www example com location sydney from www example com rss
  • jQuery 不断 ping 以获得 Ajax 响应

    如何使用 jQuery 不断运行 PHP 脚本并每秒获取响应 并将鼠标上的少量数据发送到同一脚本 我真的需要添加一些随机扩展才能让这样一个简单的计时器工作吗 迭代是人类的 递归是神圣的 L 彼得 多伊奇 http www devtopics
  • Ajax 刷新后的事件监听器

    我的网站上有一个结帐部分 我在数量部分运行此事件侦听器 以便每次根据单击的产品更新数量时 整个 div 都会使用 AJAX 重新加载 因此所有价格 总金额也会刷新 该代码可以工作一次 但之后该功能就不再工作了 cart product qu
  • file_get_contents 获取 php 内容!我需要 html 中的源代码

    我正在尝试使用 file get contents 获取 php 文件的 html 内容 但我无法管理它 无论我做什么 它都需要 php 内容 所以我希望您理解并可以帮助我 脚本的代码
  • PHP 联系表单未提交

    您好 我之前曾成功使用过这个非常简单的 php 联系脚本 但当我尝试在新的 HTML 页面上实现它时 表单不会提交 任何人都可以看到任何明显的错误吗 任何帮助将非常感激 这是表单的 html div div
  • Docker:驱动器尚未共享

    当 docker化 时ASP NET Core 3 1 MVC应用程序我得到了以下结果 docker run dt v C Users admin vsdbg vs2017u5 remote debugger rw v D xxx yyy
  • PHP 资产管道/框架

    背景 我正在致力于 现代化 一个现有的 PHP 驱动的网站 该网站最初是一个带有一些 php 方法的静态网站 它现在有一个移动网络应用程序 多个模型和大量动态内容 然而 随着时间的推移 应用程序本身的结构与它主要是静态站点时相比并没有太大变
  • Symfony2 - 多种形式的主题

    有没有办法在同一页面上的两个 或多个 表单使用不同的主题 我有 2 个表单 我想对第一个表单使用主题 X 对第二个表单使用主题 Y 您需要在显示表单之前声明您的主题 你应该试试 form theme form ThemeX html twi
  • PHP GoDaddy 最大执行时间不起作用

    默认 maximun execution time 为 120 秒 我已按照所有说明创建 php ini 文件并将其放置在正确的位置 public html 中 我运行 phpinfo 发现 maximun execution time 已
  • PHP 下载页面

    这些 PHP 下载页面 例如 somesite com download php id somefile 通常如何工作 我最初想到了一个执行计数器操作的页面 然后简单地将用户重定向到文件 URL 这似乎是其他地方给出的唯一答案 但是我不知道
  • 查找所有具有相同值的数组键

    当值未知时 是否有一种更简单的方法来获取具有相同值的所有数组键 The problem with array unique是它返回唯一的数组 因此它找不到唯一的值 例如 从这个数组 Array a gt 1000 b gt 1 c gt 1
  • 如何在使用 echo 时将字符串与函数调用连接起来?

    我想在我的 echo ed html 字符串中使用两个函数调用返回的值 li a href the permalink the title a li 以下工作正常 echo li a href echo the title echo a l
  • 使用 laravel 5 和 Auth 更新登录的用户帐户设置

    截至今天 我对 Laravel 实际上是任何 PHP 框架 还是个新手 但对 PHP 并不陌生 我创建了我的第一个项目并设法使用预构建的登录Auth系统 我创建了一个新的路线 控制器和模型 名为AccountSettings所以当我去 ac
  • 550 Bad HELO - 主机冒充域名 Laravel

    我正在尝试设置 Laravel 身份验证 包括 密码重置 功能 但当我尝试发送电子邮件时 我偶然发现了一个错误 我得到的错误是 Expected response code 250 but got code 550 with message
  • WordPress ~ 如何在一页上显示多个 Google Chart?

    下面是我插入到 WordPress Visual Composer 中的原始 HTML 块中的一个 Google 图表的代码 图表 ID 名称为 chart div1 这适用于我的 WP 网页
  • 当我在 PHP 中将 print_r() 应用于数组时,为什么会得到“Resource id #4”? [复制]

    这个问题在这里已经有答案了 可能的重复 我如何从 PHP 中的 MySql 响应中 回显 资源 id 6 https stackoverflow com questions 4290108 how do i echo a resource
  • Elasticsearch 如何使用通配符进行 OR 查询

    我很难尝试使用 elasticsearch 构建查询 我想查询类似的内容 WHERE field 1 is match string OR field 2 is wildcard match string OR field 3 is fuz
  • Codeigniter,为MySQL创建表和用户

    我想以编程方式使用 CI 创建数据库和用户 到目前为止 我有这 2 个简单的 MySQL 语句 CREATE DATABASE testdb DEFAULT CHARACTER SET utf8 COLLATE utf8 general c
  • 使用 Ajax 和 PHP 上传图像

    我想将图像上传到我的服务器 并控制 HTML 代码中的 PHP 回显 为此 我想使用 jQuery Ajax 但我不知道如何使用 Ajax 将图像发送到 PHP 这是一个大学项目 所以我不能使用任何类型的插件 我的实际代码 HTML
  • Docker容器与主机之间的端口转发

    我是 docker 的新手 我正在尝试测试一些东西 来自docs https docs docker com userguide dockerlinks 我看到我们可以在容器和主机之间映射端口 所以我拉mariadb回购并运行这样的容器 d

随机推荐

  • 这是单一责任原则的一个例子吗?

    我制作了以下代码示例来学习如何使用泛型方法签名 为了得到一个Display 方法对于客户和员工 我实际上开始更换我的IPerson接口与人抽象类 但后来我停了下来 想起鲍勃叔叔在播客中向斯科特 汉塞尔曼讲述了单一责任原则其中你应该有很多小类
  • 元素节点和文本节点的区别

  • C# 4.0 WCF REST JSON - HTTP GET 代码 400 错误请求

    当尝试创建一个简单的服务以通过遵循几个教程返回简单的 JSON 字符串时 我被困在两台不同的机器上 并收到 HTTP Statuscode 400 错误请求 示例教程 使用 JSON 的 RESTful WCF 服务 pt 1 和 pt 2
  • 使用 sed 在主机文件的行尾添加地址

    我的主机文件中有一个特定行用于本地 Wordpress Multisite 安装 如下所示 127 0 0 1 localhost domain dev site1 domain dev site2 domain dev 我正在编写一个 S
  • PHP 字母循环

    为什么这不起作用 请告诉我 您的代码中有两个问题 首先 单引号字符串 的行为与双引号字符串 当使用单引号字符串时 转义序列 除了 and 不被解释并且变量不被消耗 这可以这样修复 删除引号 或将它们更改为双引号 string hey for
  • 基于索引掩码 numpy 数组

    如何根据实际索引值屏蔽数组 也就是说 如果我有一个 10 x 10 x 30 矩阵 并且我想在第一个和第二个索引彼此相等时屏蔽该数组 例如 1 1 应该被屏蔽 因为 1 和 1 彼此相等 但是 1 2 不应该 因为他们不这样做 我只用三维来
  • iOS 11 Safari HTML - 禁用“智能标点符号”?

    有没有好的方法来禁用 SmartiOS 11 Apple 键盘生成的标点符号 在 Safari 中的 HTML 登录表单上 特别是用户名字段 问题是我们的用户名中含有撇号 在 iOS 11 上输入用户名并且不了解 unicode 的微妙之处
  • Android:ViewHolder 模式和不同类型的行?

    ViewHolder 模式提高了 ListView 滚动帧率 如以下示例所示 https developer android com resources samples ApiDemos src com example android ap
  • Cassandra:使用包含大于或小于(< 和 >)的 where 子句进行查询

    我正在使用 Cassandra 1 1 2 我正在尝试将 RDBMS 应用程序转换为 Cassandra 在我的 RDBMS 应用程序中 我有以下名为 table1 的表 Col1 Col2 Col3 Col4 Col1 字符串 主键 Co
  • python:如果超过特定文件大小,则输出到另一个文本文件

    我在 ubuntu 中使用 scapy 和 python 我想问是否有人知道如何编写示例 假设我有两个文本文件在脚本运行时正在写入 那么我想检查该文件是否超过示例 500 字节 如果超过 那么它将存储文件中的所有内容并创建一个新的文本文件来
  • 如何在 Google Chrome 中启动 JavaScript 调试器?

    使用 Google Chrome 时 我想调试一些 JavaScript 代码 我怎样才能做到这一点 尝试将其添加到您的源中 debugger 它适用于大多数 如果不是所有 浏览器 只需将它放在代码中的某个位置 它就会充当断点
  • C++ 中的 sizeof 运算符是如何实现的?

    有人可以向我指出 sizeof 运算符在 C 中的实现以及有关其实现的一些描述吗 sizeof 是不能重载的运算符之一 那么这意味着我们无法更改其默认行为 sizeof不是 C 中的真正运算符 它只是插入一个等于参数大小的常量的特殊语法 s
  • Python 中匹配非空白的正则表达式

    我想用研究提取第一组非空白字符 我有以下伪脚本来重现我的问题 usr bin env python2 7 import re line STARC 1 1 1 5 ConsCase WARNING Warning m re search S
  • C++,根据一个向量对另一个向量进行排序[重复]

    这个问题在这里已经有答案了 我得到的最好的例子是我想根据分数对名称进行排序 vector
  • R 缺少哪些其他语言有的调试工具? [关闭]

    很难说出这里问的是什么 这个问题模棱两可 含糊不清 不完整 过于宽泛或言辞激烈 无法以目前的形式合理回答 如需帮助澄清此问题以便重新打开 访问帮助中心 我熟悉browser trace traceback and options error
  • .NET HttpWebRequest 速度与浏览器

    我有一个关于 Net HttpWebRequest 客户端 或 WebClient 给出类似结果 性能的问题 如果我使用 HttpWebRequest 请求 html 页面 在本例中为 news bbc co uk 并分析应用程序读取响应的
  • 为什么设置 document.domain 不能允许对父域的 AJAX 请求?

    我有两个文件 domain com test2 php div div 和domain com test3 php b var1 var2 b 在本例中 domain com test2 php 输出var1 1 var2 2正如人们所期望
  • 固定长度和类型文字的列表

    我正在尝试在 Haskell 中定义固定长度列表的类型 当我使用标准方法将自然数编码为一元类型时 一切正常 然而 当我尝试在 GHC 的类型文字上构建所有内容时 我遇到了很多问题 我第一次尝试所需的列表类型是 data List n Nat
  • 无法捕获 DataIntegrityViolationException

    我使用 Spring Boot 2 和 spring boot starter data jpa 以及底层 MariaDB 我有一个带有唯一键 用户名 的表 我想抓住DataIntegrityViolationException如果违反了这
  • PHP 扩展对 docker-compose 中的 Composer 容器不可用

    我使用 docker compose 并在一个项目中拥有多个容器 Nginx PHP Composer 和 nginx 一切都很好 除了一件事 作曲家不工作 我正在尝试安装一个使用 GD 扩展的作曲家项目 该项目安装在 PHP 中 在 PH