From 69ce0ba1c1aa54d99682fd14f20a97ecd7dbde2c Mon Sep 17 00:00:00 2001 From: JeremJR Date: Fri, 8 Sep 2017 18:58:42 +0200 Subject: [PATCH] add docker-compose example for bonita --- bonita/content.md | 4 ++++ bonita/stack.yml | 56 +++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 60 insertions(+) create mode 100644 bonita/stack.yml diff --git a/bonita/content.md b/bonita/content.md index ad1266ef1..c195c0a60 100644 --- a/bonita/content.md +++ b/bonita/content.md @@ -75,6 +75,10 @@ $ docker run --name=bonita -e "TENANT_LOGIN=tech_user" -e "TENANT_PASSWORD=secre Now you can access the Bonita BPM Portal on localhost:8080/bonita and login using: tech_user / secret +## %%STACK%% + +Run `docker stack deploy -c stack.yml %%REPO%%` (or `docker-compose -f stack.yml up`), wait for it to initialize completely, and visit `http://swarm-ip:8080`, `http://localhost:8080`, or `http://host-ip:8080` (as appropriate). + ## Where to store data Most of the data are stored in a database and can be stored outside the Bonita container as described above using the PostgreSQL or MySQL container. However, some data remains inside the Bonita bundle. Bonita Home is a folder, called `bonita`, which contains configuration, working, and temporary folders and files. There are also log files inside the `logs` folder. diff --git a/bonita/stack.yml b/bonita/stack.yml new file mode 100644 index 000000000..9b4263d29 --- /dev/null +++ b/bonita/stack.yml @@ -0,0 +1,56 @@ +# Use tech_user/secret as user/password credentials +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 + + bonita: + image: bonita + ports: + - 8080:8080 + environment: + - POSTGRES_ENV_POSTGRES_PASSWORD=example + - DB_VENDOR=postgres + - DB_HOST=db + - TENANT_LOGIN=tech_user + - TENANT_PASSWORD=secret + - PLATFORM_LOGIN=pfadmin + - PLATFORM_PASSWORD=pfsecret + 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