From 56e71afba75389a8a59d52fa9db3cfbc294b0b1b Mon Sep 17 00:00:00 2001
From: Christoph Reiter <reiter.christoph@gmail.com>
Date: Thu, 4 Nov 2021 13:11:05 +0100
Subject: [PATCH] docker-composer: add a supervisor service

---
 composer.lock                        |  6 +++---
 docker-dev/docker-compose.yml        | 12 ++++++++++++
 docker-dev/php-fpm/Dockerfile        |  1 +
 docker-dev/php-fpm/queue-worker.conf | 25 +++++++++++++++++++++++++
 4 files changed, 41 insertions(+), 3 deletions(-)
 create mode 100644 docker-dev/php-fpm/queue-worker.conf

diff --git a/composer.lock b/composer.lock
index 8c0e8aa..2b7cd0c 100644
--- a/composer.lock
+++ b/composer.lock
@@ -352,11 +352,11 @@
         },
         {
             "name": "dbp/relay-core-bundle",
-            "version": "v0.1.20",
+            "version": "v0.1.21",
             "source": {
                 "type": "git",
                 "url": "https://gitlab.tugraz.at/dbp/relay/dbp-relay-core-bundle",
-                "reference": "94264cb880989d8937749a02826e911dd2b819df"
+                "reference": "f89f53fa7fe19ed211df68e6f6b8fd682de717dc"
             },
             "require": {
                 "api-platform/core": "^2.6.3",
@@ -412,7 +412,7 @@
             "license": [
                 "AGPL-3.0-or-later"
             ],
-            "time": "2021-11-04T11:06:30+00:00"
+            "time": "2021-11-04T12:09:56+00:00"
         },
         {
             "name": "doctrine/annotations",
diff --git a/docker-dev/docker-compose.yml b/docker-dev/docker-compose.yml
index 397c626..2d2ea0d 100644
--- a/docker-dev/docker-compose.yml
+++ b/docker-dev/docker-compose.yml
@@ -21,6 +21,18 @@ services:
       - ./php-fpm/php-ini-overrides.ini:/etc/php/7.3/fpm/conf.d/99-overrides.ini
       - ./php-fpm/php-fpm-overrides.conf:/etc/php/7.3/fpm/pool.d/z-overrides.conf
 
+  queue-worker:
+    environment:
+      - TERM_PROGRAM=Hyper  # force colors for the symfony dumper
+    build:
+      context: php-fpm
+    working_dir: /application
+    entrypoint: sudo supervisord -c /etc/supervisor/conf.d/queue-worker.conf
+    volumes:
+      - ./php-fpm/queue-worker.conf:/etc/supervisor/conf.d/queue-worker.conf
+      - ..:/application
+      - ./php-fpm/php-ini-overrides.ini:/etc/php/7.3/cli/conf.d/99-overrides.ini
+
   redis:
     image: "redis"
 
diff --git a/docker-dev/php-fpm/Dockerfile b/docker-dev/php-fpm/Dockerfile
index 5cdb6da..172950c 100644
--- a/docker-dev/php-fpm/Dockerfile
+++ b/docker-dev/php-fpm/Dockerfile
@@ -34,6 +34,7 @@ RUN wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
         php7.3-gmp \
         php7.3-xdebug \
         composer \
+        supervisor \
     && apt-get clean \
     && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
 
diff --git a/docker-dev/php-fpm/queue-worker.conf b/docker-dev/php-fpm/queue-worker.conf
new file mode 100644
index 0000000..e84b846
--- /dev/null
+++ b/docker-dev/php-fpm/queue-worker.conf
@@ -0,0 +1,25 @@
+[supervisord]
+# so the process is sync
+nodaemon=true
+# so we don't write a log file
+logfile=/dev/null
+logfile_maxbytes=0
+# so the log file isn't written to the volume
+pidfile=/supervisord.pid
+
+[program:queue-work]
+command=php /application/bin/console dbp:relay:core:queue:work "%(program_name)s_%(process_num)02d"
+user=user
+numprocs=2
+startsecs=0
+autostart=true
+autorestart=true
+process_name=%(program_name)s_%(process_num)02d
+
+# to forward stdout/stderr to supervisord
+stdout_events_enabled=true
+stderr_events_enabled=true
+stdout_logfile_maxbytes=0
+stderr_logfile_maxbytes=0
+stdout_logfile=/dev/stdout
+stderr_logfile=/dev/stderr
-- 
GitLab