From 480cb2caf1ec2172d9d57c9f9f26cabfdadd2355 Mon Sep 17 00:00:00 2001 From: Niels van der Molen Date: Tue, 30 Oct 2018 15:12:44 +0100 Subject: [PATCH] Step 6. Consuming the messages in PHP --- Dockerfile-nginx | 2 +- Dockerfile-php | 2 +- Dockerfile-php-consume | 17 +++++++++++++++++ build/php-consume/message_script.sh | 3 +++ docker-compose.yml | 12 ++++++++++++ .../src/MessageHandler/SleepMessageHandler.php | 2 +- 6 files changed, 35 insertions(+), 3 deletions(-) create mode 100644 Dockerfile-php-consume create mode 100644 build/php-consume/message_script.sh diff --git a/Dockerfile-nginx b/Dockerfile-nginx index 0f83c07..9071c76 100644 --- a/Dockerfile-nginx +++ b/Dockerfile-nginx @@ -1,3 +1,3 @@ FROM nginx:latest COPY ./build/nginx/default.conf /etc/nginx/conf.d/ -COPY . /var/www/project +COPY project/ /var/www/project diff --git a/Dockerfile-php b/Dockerfile-php index 559c844..adf20b0 100644 --- a/Dockerfile-php +++ b/Dockerfile-php @@ -11,5 +11,5 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ && docker-php-ext-enable amqp # Enable the Extension RUN curl -sS https://getcomposer.org/installer | php && mv composer.phar /usr/local/bin/composer -COPY . /var/www/project +COPY project/ /var/www/project WORKDIR /var/www/project/ diff --git a/Dockerfile-php-consume b/Dockerfile-php-consume new file mode 100644 index 0000000..661a0b7 --- /dev/null +++ b/Dockerfile-php-consume @@ -0,0 +1,17 @@ +FROM php:fpm +RUN apt-get update && apt-get install -y --no-install-recommends \ + git \ + zlib1g-dev \ + libxml2-dev \ + librabbitmq-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 +COPY build/php-consume/ /var/www/scripts/ +WORKDIR /var/www/project/ +ENTRYPOINT ["bash", "/var/www/scripts/message_script.sh"] \ No newline at end of file diff --git a/build/php-consume/message_script.sh b/build/php-consume/message_script.sh new file mode 100644 index 0000000..f37fefa --- /dev/null +++ b/build/php-consume/message_script.sh @@ -0,0 +1,3 @@ +#!/usr/bin/env bash +sleep 10; +/var/www/project/bin/console messenger:consume-messages >&1; diff --git a/docker-compose.yml b/docker-compose.yml index ad4a14c..c181ba2 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -13,6 +13,18 @@ services: networks: - symfony # Docker containers (services) that need to connect to each other should be on the same network. + php-consume: + build: + context: . + dockerfile: Dockerfile-php-consume + environment: + - DATABASE_URL=mysql://root:root@db:3306/project_db + - MESSENGER_TRANSPORT_DSN=amqp://guest:guest@rabbitmq:5672/%2f/messages + volumes: + - ./project/:/var/www/project/ + networks: + - symfony + nginx: build: context: . diff --git a/project/src/MessageHandler/SleepMessageHandler.php b/project/src/MessageHandler/SleepMessageHandler.php index 8a4e28a..67c6180 100644 --- a/project/src/MessageHandler/SleepMessageHandler.php +++ b/project/src/MessageHandler/SleepMessageHandler.php @@ -16,6 +16,6 @@ public function __invoke(SleepMessage $sleepMessage) # Simulate a long running process. sleep($seconds); - echo $output; + echo $output . PHP_EOL; } }