gpt4 book ai didi

php - Dockerfile 安装 amqp 失败

转载 作者:行者123 更新时间:2023-12-02 19:21:09 32 4
gpt4 key购买 nike

我的 dockerfile 有一些问题...这就是问题所在,我有一个基于此图像的 dockerfile -> FROM php:7.1.7-apache

我想为 php 安装 amqp 扩展。我使用的是 pecl,但最近在构建容器时出现错误。

这是我在 dockerfile 中使用的过程

FROM php:7.1.7-apache

MAINTAINER T3ddy <xx@xxx.com>

RUN apt-get update

## TOOLS
RUN apt-get install -y \
build-essential \
curl \
git \
htop \
ncdu \
netcat \
net-tools \
telnet \
unzip \
vim \
wget

## PHP AMQP
RUN apt-get install -y librabbitmq-dev libssl-dev
RUN pecl install amqp
RUN docker-php-ext-enable amqp

当我到达 pecl install amqp 的时候...

.......
/tmp/pear/temp/amqp/amqp.c: In function 'zm_startup_amqp':
/tmp/pear/temp/amqp/amqp.c:177:55: error: 'AMQP_SASL_METHOD_EXTERNAL' undeclared (first use in this function)
REGISTER_LONG_CONSTANT("AMQP_SASL_METHOD_EXTERNAL", AMQP_SASL_METHOD_EXTERNAL, CONST_CS | CONST_PERSISTENT);
^
/usr/local/include/php/Zend/zend_constants.h:42:105: note: in definition of macro 'REGISTER_LONG_CONSTANT'
#define REGISTER_LONG_CONSTANT(name, lval, flags) zend_register_long_constant((name), sizeof(name)-1, (lval), (flags), module_number)
^
/tmp/pear/temp/amqp/amqp.c:177:55: note: each undeclared identifier is reported only once for each function it appears in
REGISTER_LONG_CONSTANT("AMQP_SASL_METHOD_EXTERNAL", AMQP_SASL_METHOD_EXTERNAL, CONST_CS | CONST_PERSISTENT);
^
/usr/local/include/php/Zend/zend_constants.h:42:105: note: in definition of macro 'REGISTER_LONG_CONSTANT'
#define REGISTER_LONG_CONSTANT(name, lval, flags) zend_register_long_constant((name), sizeof(name)-1, (lval), (flags), module_number)
^
Makefile:194: recipe for target 'amqp.lo' failed
make: *** [amqp.lo] Error 1
ERROR: `make' failed
The command '/bin/sh -c pecl install amqp' returned a non-zero code: 1

这是我得到的错误,我真的不明白为什么它会失败,因为从现在开始它工作正常......任何人都有任何想法。或者关于如何在不使用 pecl 的情况下安装 amqp 的解决方案?

最佳答案

我发布了一个脚本,您只需使用以下几行即可安装 amqp PHP 扩展(以及许多其他扩展):

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 && sync && \
install-php-extensions amqp

脚本负责 PHP 版本,并安装所有必需的 APT(对于 Debian)或 APK(对于 Alpine)包。

此处有更多详细信息:https://github.com/mlocati/docker-php-extension-installer

关于php - Dockerfile 安装 amqp 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59643458/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com