Reputation: 4051
How should Dockerfile look with Alpine (alpine:3.10
) for using rabbit and rabbit dependency packages?
I have an Ubuntu configuration. How to reproduce it for Alpine ?
FROM php:7.3-fpm
RUN apt-get update && apt-get install -y --no-install-recommends \
git \
zlib1g-dev \
libxml2-dev \
librabbitmq-dev \
libzip-dev \
libonig-dev \
&& docker-php-ext-install \
pdo_mysql \
zip \
&& pecl install amqp \
&& docker-php-ext-enable amqp # Enable the Extension
RUN curl -sS https://getcomposer.org/installer | php && mv composer.phar /usr/local/bin/composer
COPY project/ /var/www/project
WORKDIR /var/www/project/
Upvotes: 1
Views: 10699
Reputation: 600
If anybody has a legacy app which needs php7.3. use these steps in your dockerfile:
FROM php:7.3.20-fpm
RUN DEBIAN_FRONTEND=noninteractive apt-get update \
&& apt-get install -y \
librabbitmq-dev \
curl \
&& rm -rf /var/lib/apt/lists/*
RUN docker-php-ext-install bcmath
after that build the legacy php-amqp version v1.9.4, which has support for php-7.3 from source and enable the php extension:
RUN curl https://github.com/php-amqp/php-amqp/archive/refs/tags/v1.9.4.tar.gz --location -o /tmp/php-amqp-v1.9.4.tar.gz \
&& mkdir /tmp/php-amqp-v1.9.4 \
&& tar -C /tmp/php-amqp-v1.9.4 -xf /tmp/php-amqp-v1.9.4.tar.gz --strip-components=1 \
&& (cd /tmp/php-amqp-v1.9.4 && phpize && ./configure && make && make install) \
&& rm -rfv /tmp/php-amqp-v1.9.4 \
&& docker-php-ext-enable amqp
Upvotes: 0
Reputation: 165
For php:8.0.6-fpm-alpine
I solved this using:
RUN apk add --no-cache rabbitmq-c-dev && \
mkdir -p /usr/src/php/ext/amqp && \
curl -fsSL https://pecl.php.net/get/amqp | tar xvz -C "/usr/src/php/ext/amqp" --strip 1 && \
docker-php-ext-install amqp
Reference: https://github.com/docker-library/php/issues/1029#issuecomment-650576137
Upvotes: 1
Reputation: 41
This worked for me on php:7.4-fpm-alpine3.12
RUN apk --update --no-cache add build-base \
autoconf \
rabbitmq-c-dev
RUN pecl install amqp
RUN docker-php-ext-enable amqp
Upvotes: 4
Reputation: 1
FROM php:7.4.8-fpm-alpine
# Add AMQP extension
RUN apk add \
--repository http://dl-cdn.alpinelinux.org/alpine/v3.6/main \
--no-cache \
rabbitmq-c-dev \
&& pecl install amqp \
&& docker-php-ext-enable amqp
//...
Upvotes: 0
Reputation: 81
FROM php:7.4-fpm-alpine
# Composer
COPY --from=composer:latest /usr/bin/composer /usr/bin/composer
# Extensions
RUN echo "Extensions install - start" \
# Sockets
&& docker-php-ext-install sockets \
# Amqp
&& apk add --no-cache --update rabbitmq-c-dev \
&& apk add --no-cache --update --virtual .phpize-deps $PHPIZE_DEPS \
&& pecl install -o -f amqp \
&& docker-php-ext-enable amqp \
&& apk del .phpize-deps \
#
&& echo "Extensions install - finish"
Upvotes: 3
Reputation: 485
You have to install those librairies rabbitmq-c
& rabbitmq-c-dev
.
So you can do:
FROM php:7.3-fpm
RUN apt-get update && apt-get install -y --no-install-recommends \
git \
zlib1g-dev \
libxml2-dev \
rabbitmq-c rabbitmq-c-dev \
libzip-dev \
libonig-dev \
&& docker-php-ext-install \
pdo_mysql \
zip \
&& pecl install amqp \
&& docker-php-ext-enable amqp # Enable the Extension
RUN curl -sS https://getcomposer.org/installer | php && mv composer.phar /usr/local/bin/composer
COPY project/ /var/www/project
WORKDIR /var/www/project/
Upvotes: 4