首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Dockerfile安装amqp失败

Dockerfile安装amqp失败
EN

Stack Overflow用户
提问于 2020-01-08 18:03:09
回答 2查看 4.1K关注 0票数 2

我的文档文件有点问题...这就是问题所在,我有一个基于来自php:7.1.7-apache的图片->的文档文件

我想为php安装amqp扩展。我使用的是pecl,但是最近当我构建我的容器时,我得到了一个错误。

下面是我在dockerfile中使用的进程

代码语言:javascript
运行
复制
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安装amqp的时候...

代码语言:javascript
运行
复制
.......
/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?

EN

回答 2

Stack Overflow用户

发布于 2020-12-18 01:00:01

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

代码语言:javascript
运行
复制
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 (适用于高山)包。

更多详细信息请访问:https://github.com/mlocati/docker-php-extension-installer

票数 3
EN

Stack Overflow用户

发布于 2020-01-08 18:48:18

2019-01-02 (1.9.4)发布了一个新版本的AMQP,现在看起来并不兼容。您可以使用pecl install amqp-1.9.3显式安装1.9.3

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

https://stackoverflow.com/questions/59643458

复制
相关文章

相似问题

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