Не удалось установить Dockerfile amqp - PullRequest
1 голос
/ 08 января 2020

У меня есть некоторые проблемы с моим dockerfile ... Вот проблема, у меня есть dockerfile, основанный на этом образе -> ОТ php: 7.1.7- apache

Я хочу установить Расширение amqp для php. Я использовал 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

И вот ошибка, которую я получил, я не очень понимаю, почему это не удалось, потому что с тех пор он работал нормально ... Кто-нибудь есть идеи. Или решение о том, как установить amqp без использования pecl, может быть?

1 Ответ

1 голос
/ 08 января 2020

Вышла новая версия AMQP, выпущенная 2019-01-02 ( 1.9.4 ), которая сейчас не совместима, как кажется. Вы можете явно установить 1.9.3 с pecl install amqp-1.9.3

...