From f4c3fdb716aeb891d879fe793796b2acc14ac171 Mon Sep 17 00:00:00 2001
From: Fabian Schindler <fabian.schindler.strauss@gmail.com>
Date: Tue, 31 Mar 2020 09:41:30 +0200
Subject: [PATCH] Instance setup waiting Adding wait script to wait until an
 instance was set up Adding startup scripts to wait Using new EOxServer env
 configs

---
 core/Dockerfile          |  9 +++++++--
 core/initialized.sh      |  4 ++++
 core/wait-initialized.sh |  7 +++++++
 docker-compose.vhr18.yml | 11 +++++++----
 4 files changed, 25 insertions(+), 6 deletions(-)
 create mode 100644 core/initialized.sh
 create mode 100644 core/wait-initialized.sh

diff --git a/core/Dockerfile b/core/Dockerfile
index 19f38e92..52e91cfd 100644
--- a/core/Dockerfile
+++ b/core/Dockerfile
@@ -68,7 +68,8 @@ ENV INSTANCE_ID="prism-view-server_core" \
     REDIS_PORT= \
     REDIS_REGISTER_QUEUE_KEY= \
     REDIS_REGISTERED_SET_KEY= \
-    INIT_SCRIPTS="/configure.sh"
+    INIT_SCRIPTS="/configure.sh" \
+    COLLECT_STATIC="false"
 
 ADD rgbnir_definition.json \
     configure.sh \
@@ -76,6 +77,8 @@ ADD rgbnir_definition.json \
     run-registrar.sh \
     registrar.py \
     entrypoint.sh \
+    wait-initialized.sh \
+    initialized.sh \
     /
 
 #    run-redis-manager.sh \
@@ -85,7 +88,9 @@ RUN chmod -v +x \
     /configure.sh \
     /run-registrar.sh \
     /run-httpd.sh \
-    /entrypoint.sh
+    /entrypoint.sh \
+    /wait-initialized.sh \
+    /initialized.sh
 #    /run-redis-manager.sh
 
 EXPOSE 80
diff --git a/core/initialized.sh b/core/initialized.sh
new file mode 100644
index 00000000..8fc6714b
--- /dev/null
+++ b/core/initialized.sh
@@ -0,0 +1,4 @@
+#!/bin/bash -e
+
+touch "${INSTANCE_DIR}/.initialized"
+echo "Instance ${INSTANCE_ID} is initialized"
diff --git a/core/wait-initialized.sh b/core/wait-initialized.sh
new file mode 100644
index 00000000..bfefbc12
--- /dev/null
+++ b/core/wait-initialized.sh
@@ -0,0 +1,7 @@
+#!/bin/bash -e
+
+until [ -f "${INSTANCE_DIR}/.initialized" ] ; do
+    echo "Waiting until instance ${INSTANCE_ID} is initialized"
+    sleep 3
+    # TODO: timeout?
+done
diff --git a/docker-compose.vhr18.yml b/docker-compose.vhr18.yml
index 1310192c..d8d91f8a 100644
--- a/docker-compose.vhr18.yml
+++ b/docker-compose.vhr18.yml
@@ -42,7 +42,9 @@ services:
     environment:
       INSTANCE_ID: "prism-view-server_renderer"
       INSTALL_DIR: "/var/www/pvs/dev/"
-      INIT_SCRIPTS: "/configure.sh /init-db.sh"
+      COLLECT_STATIC: "false"
+      INIT_SCRIPTS: "/configure.sh /init-db.sh /initialized.sh"
+      STARTUP_SCRIPTS: "/wait-initialized.sh"
       WAIT_SERVICES: "database:5432"
     configs:
       - source: init-db
@@ -131,9 +133,10 @@ services:
       INSTALL_DIR: "/var/www/pvs/dev/"
       SCALEFACTOR: "1"
       IN_MEMORY: "false"
-      INIT_SCRIPTS: "/configure.sh /init-db.sh"
-      WAIT_SERVICES: "redis:6379 database:5432 renderer:80"
-      WAIT_TIMEOUT: 300  # wait up to 5 minutes
+      COLLECT_STATIC: "false"
+      INIT_SCRIPTS: "/configure.sh /init-db.sh /initialized.sh"
+      STARTUP_SCRIPTS: "/wait-initialized.sh"
+      WAIT_SERVICES: "redis:6379 database:5432"
     configs:
       - source: init-db
         target: /init-db.sh
-- 
GitLab