diff --git a/bin/build-enqueue-dev-image.sh b/bin/build-enqueue-dev-image.sh new file mode 100755 index 000000000..117d547f7 --- /dev/null +++ b/bin/build-enqueue-dev-image.sh @@ -0,0 +1,8 @@ +#!/usr/bin/env bash + +set -e +set -x + +(cd docker && docker build --rm --force-rm --no-cache --pull --squash --tag "enqueue/dev:latest" -f Dockerfile .) +(cd docker && docker login --username="$DOCKER_USER" --password="$DOCKER_PASSWORD") +(cd docker && docker push "enqueue/dev:latest") \ No newline at end of file diff --git a/composer.json b/composer.json index fb19ba4a9..d5fb0cfef 100644 --- a/composer.json +++ b/composer.json @@ -57,7 +57,7 @@ "config": { "bin-dir": "bin", "platform": { - "ext-amqp": "1.7", + "ext-amqp": "1.9.3", "ext-gearman": "1.1", "ext-rdkafka": "3.3" } diff --git a/docker-compose.yml b/docker-compose.yml index a25178854..1673b5775 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -3,7 +3,6 @@ version: '2' services: dev: image: enqueue/dev:latest - # build: { context: docker, dockerfile: Dockerfile } depends_on: - rabbitmq - mysql @@ -48,7 +47,6 @@ services: rabbitmq: image: 'enqueue/rabbitmq:latest' - # build: { context: docker, dockerfile: Dockerfile.rabbitmq } environment: - RABBITMQ_DEFAULT_USER=guest - RABBITMQ_DEFAULT_PASS=guest diff --git a/docker/Dockerfile b/docker/Dockerfile index ffb51d818..7c23fb7ec 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -3,21 +3,34 @@ FROM formapro/nginx-php-fpm:latest-all-exts ## libs RUN set -x && \ apt-get update && \ - apt-get install -y wget curl openssl ca-certificates nano netcat php-dev php-redis git python + apt-get install -y --no-install-recommends --no-install-suggests wget curl openssl ca-certificates nano netcat php-dev php-redis git python + +RUN set -x && \ + apt-get update && \ + apt-get install -y --no-install-recommends --no-install-suggests php-dev librabbitmq-dev make && \ + mkdir -p $HOME/php-amqp && \ + cd $HOME/php-amqp && \ + git clone https://github.com/pdezwart/php-amqp.git . && git checkout v1.9.3 && \ + phpize --clean && phpize && ./configure && make install ## confis # RUN rm -f /etc/php/7.0/cli/conf.d/*xdebug.ini ## librdkafka -RUN git clone https://github.com/edenhill/librdkafka.git /root/librdkafka -RUN cd /root/librdkafka && git checkout v0.11.0-RC2 && ./configure && make && make install -RUN pecl install rdkafka -RUN echo "extension=rdkafka.so" > /etc/php/7.1/cli/conf.d/10-rdkafka.ini -RUN echo "extension=rdkafka.so" > /etc/php/7.1/fpm/conf.d/10-rdkafka.ini +RUN set -x && \ + apt-get update && \ + apt-get install -y --no-install-recommends --no-install-suggests g++ php-pear php-dev && \ + mkdir -p $HOME/librdkafka && \ + cd $HOME/librdkafka && \ + git clone https://github.com/edenhill/librdkafka.git . && \ + git checkout v0.11.1 && \ + ./configure && make && make install && \ + pecl install rdkafka && \ + echo "extension=rdkafka.so" > /etc/php/7.1/cli/conf.d/10-rdkafka.ini && \ + echo "extension=rdkafka.so" > /etc/php/7.1/fpm/conf.d/10-rdkafka.ini COPY ./php/cli.ini /etc/php/7.1/cli/conf.d/1-dev_cli.ini -COPY ./php/amqp.so /usr/lib/php/20160303/amqp.so COPY ./bin/dev_entrypoiny.sh /usr/local/bin/entrypoint.sh RUN chmod u+x /usr/local/bin/entrypoint.sh diff --git a/docker/php/amqp.so b/docker/php/amqp.so deleted file mode 100755 index 442c0bb49..000000000 Binary files a/docker/php/amqp.so and /dev/null differ diff --git a/pkg/amqp-ext/AmqpConnectionFactory.php b/pkg/amqp-ext/AmqpConnectionFactory.php index c6127133c..a3561b85a 100644 --- a/pkg/amqp-ext/AmqpConnectionFactory.php +++ b/pkg/amqp-ext/AmqpConnectionFactory.php @@ -125,11 +125,17 @@ private function establishConnection() $this->connection = new \AMQPConnection($extConfig); - $this->config->isPersisted() ? $this->connection->pconnect() : $this->connection->connect(); + $this->config->isPersisted() ? + $this->connection->pconnect() : + $this->connection->connect() + ; } if (false == $this->connection->isConnected()) { - $this->config->isPersisted() ? $this->connection->preconnect() : $this->connection->reconnect(); + $this->config->isPersisted() ? + $this->connection->preconnect() : + $this->connection->reconnect() + ; } return $this->connection; diff --git a/pkg/amqp-ext/composer.json b/pkg/amqp-ext/composer.json index 0397a994b..5e01ef500 100644 --- a/pkg/amqp-ext/composer.json +++ b/pkg/amqp-ext/composer.json @@ -7,7 +7,7 @@ "license": "MIT", "require": { "php": ">=5.6", - "ext-amqp": "^1.6", + "ext-amqp": "^1.9.3", "queue-interop/amqp-interop": "^0.7@dev", "enqueue/amqp-tools": "^0.8.4@dev"