From 36b814b6037caa4680c338ab53c1f2f5b27dec57 Mon Sep 17 00:00:00 2001 From: Diego Lendoiro Date: Thu, 18 Jan 2018 10:45:46 +0100 Subject: [PATCH] added docker-compose files from dlen/passbolt-compose --- docker-compose.yml | 30 +++++++++++++++++ env/mysql.env | 4 +++ env/passbolt.env | 11 +++++++ scripts/wait-for.sh | 79 +++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 124 insertions(+) create mode 100644 docker-compose.yml create mode 100644 env/mysql.env create mode 100644 env/passbolt.env create mode 100755 scripts/wait-for.sh diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..3c4651d --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,30 @@ +version: '3.4' +services: + db: + image: mysql:latest + env_file: + - env/mysql.env + volumes: + - database_volume:/var/lib/mysql + ports: + - 3306 + + passbolt: + image: passbolt/passbolt:2.0.0-rc1-alpine + depends_on: + - db + env_file: + - env/passbolt.env + volumes: + - gpg_volume:/var/www/passbolt/config/gpg + - images_volume:/var/www/passbolt/webroot/img/public/images + - ./scripts/wait-for.sh:/usr/bin/wait-for.sh + command: ["/usr/bin/wait-for.sh", "db:3306", "--", "/docker-entrypoint.sh"] + ports: + - 80:80 + - 443:443 + +volumes: + database_volume: + gpg_volume: + images_volume: diff --git a/env/mysql.env b/env/mysql.env new file mode 100644 index 0000000..b21fd60 --- /dev/null +++ b/env/mysql.env @@ -0,0 +1,4 @@ +MYSQL_ROOT_PASSWORD=test +MYSQL_DATABASE=passbolt +MYSQL_USER=passbolt +MYSQL_PASSWORD=P4ssb0lt diff --git a/env/passbolt.env b/env/passbolt.env new file mode 100644 index 0000000..01ff892 --- /dev/null +++ b/env/passbolt.env @@ -0,0 +1,11 @@ +# URL +APP_FULL_BASE_URL=https://passbolt.local + +# Database settings +DATASOURCES_DEFAULT_HOST=db +DATASOURCES_DEFAULT_USERNAME=passbolt +DATASOURCES_DEFAULT_PASSWORD=P4ssb0lt +DATASOURCES_DEFAULT_DATABASE=passbolt + +# Misc +PASSBOLT_REGISTRATION_PUBLIC=true diff --git a/scripts/wait-for.sh b/scripts/wait-for.sh new file mode 100755 index 0000000..ddfc39e --- /dev/null +++ b/scripts/wait-for.sh @@ -0,0 +1,79 @@ +#!/bin/sh + +TIMEOUT=15 +QUIET=0 + +echoerr() { + if [ "$QUIET" -ne 1 ]; then printf "%s\n" "$*" 1>&2; fi +} + +usage() { + exitcode="$1" + cat << USAGE >&2 +Usage: + $cmdname host:port [-t timeout] [-- command args] + -q | --quiet Do not output any status messages + -t TIMEOUT | --timeout=timeout Timeout in seconds, zero for no timeout + -- COMMAND ARGS Execute command with args after the test finishes +USAGE + exit "$exitcode" +} + +wait_for() { + for i in `seq $TIMEOUT` ; do + nc -z "$HOST" "$PORT" > /dev/null 2>&1 + + result=$? + if [ $result -eq 0 ] ; then + if [ $# -gt 0 ] ; then + exec "$@" + fi + exit 0 + fi + sleep 1 + done + echo "Operation timed out" >&2 + exit 1 +} + +while [ $# -gt 0 ] +do + case "$1" in + *:* ) + HOST=$(printf "%s\n" "$1"| cut -d : -f 1) + PORT=$(printf "%s\n" "$1"| cut -d : -f 2) + shift 1 + ;; + -q | --quiet) + QUIET=1 + shift 1 + ;; + -t) + TIMEOUT="$2" + if [ "$TIMEOUT" = "" ]; then break; fi + shift 2 + ;; + --timeout=*) + TIMEOUT="${1#*=}" + shift 1 + ;; + --) + shift + break + ;; + --help) + usage 0 + ;; + *) + echoerr "Unknown argument: $1" + usage 1 + ;; + esac +done + +if [ "$HOST" = "" -o "$PORT" = "" ]; then + echoerr "Error: you need to provide a host and port to test." + usage 2 +fi + +wait_for "$@"