Browse Source

apply yosifkit's advice

JeremJR 8 years ago
parent
commit
911024a3d9
1 changed files with 22 additions and 34 deletions
  1. 22 34
      bonita/stack.yml

+ 22 - 34
bonita/stack.yml

@@ -2,21 +2,14 @@
 version: '3'
 
 services:
-
     db:
         image: postgres:9.3
         environment:
             POSTGRES_PASSWORD: example
-        entrypoint: &postgres-script
-           - sh
-           - -c
-           - |
-             set -e
-             echo '#!/bin/bash' > /docker-entrypoint-initdb.d/bonita.sh
-             echo 'sed -i "s/^.*max_prepared_transactions\s*=\s*\(.*\)$$/max_prepared_transactions = 100/" "$$PGDATA"/postgresql.conf' >> /docker-entrypoint-initdb.d/bonita.sh
-             chmod +x /docker-entrypoint-initdb.d/bonita.sh
-             /docker-entrypoint.sh postgres
-
+        restart: always
+        command:
+            - -c
+            - max_prepared_transactions=100
     bonita:
         image: bonita
         ports:
@@ -29,28 +22,23 @@ services:
             - TENANT_PASSWORD=secret
             - PLATFORM_LOGIN=pfadmin
             - PLATFORM_PASSWORD=pfsecret
+        restart: always
         depends_on:
             - db
-        entrypoint: &bonita-script
-           - sh
-           - -c
-           - |
-             set -e
-             cat > /wait-for-postgres.sh <<- EOM
-             #!/bin/bash
-             # wait-for-postgres.sh
-             set -e
-             host="\$$1"
-             shift
-             cmd="\$$@"
-             PGPASSWORD=\$$POSTGRES_ENV_POSTGRES_PASSWORD
-             export PGPASSWORD
-             until psql -h "\$$host" -U "postgres" -c '\l'; do
-               >&2 echo "Postgres is unavailable - sleeping"
-               sleep 1
-             done
-             >&2 echo "Postgres is up - executing command"
-             exec \$$cmd
-             EOM
-             chmod +x /wait-for-postgres.sh
-             /wait-for-postgres.sh $$DB_HOST /opt/files/startup.sh
+        entrypoint:
+            - bash
+            - -c
+            - |
+              set -e
+              echo 'Waiting for Postgres to be available'
+              export PGPASSWORD="$$POSTGRES_ENV_POSTGRES_PASSWORD"
+              maxTries=10
+              while [ "$$maxTries" -gt 0 ] && ! psql -h "$$DB_HOST" -U 'postgres' -c '\l'; do
+                  sleep 1
+              done
+              echo
+              if [ "$$maxTries" -le 0 ]; then
+                  echo >&2 'error: unable to contact Postgres after 10 tries'
+                  exit 1
+              fi
+              exec /opt/files/startup.sh