diff --git a/bin/quickstart.sh b/bin/quickstart.sh index 67885bf2..d6e45dd0 100755 --- a/bin/quickstart.sh +++ b/bin/quickstart.sh @@ -1,82 +1,83 @@ #!/bin/bash set -e function die() { echo "$1" exit 1 } rpm -qv composer >/dev/null 2>&1 || \ test ! -z "$(which composer 2>/dev/null)" || \ die "Is composer installed?" rpm -qv docker-compose >/dev/null 2>&1 || \ test ! -z "$(which docker-compose 2>/dev/null)" || \ die "Is docker-compose installed?" rpm -qv npm >/dev/null 2>&1 || \ test ! -z "$(which npm 2>/dev/null)" || \ die "Is npm installed?" rpm -qv php >/dev/null 2>&1 || \ test ! -z "$(which php 2>/dev/null)" || \ die "Is php installed?" rpm -qv php-ldap >/dev/null 2>&1 || \ test ! -z "$(php --ini | grep ldap)" || \ die "Is php-ldap installed?" rpm -qv php-mysqlnd >/dev/null 2>&1 || \ test ! -z "$(php --ini | grep mysql)" || \ die "Is php-mysqlnd installed?" base_dir=$(dirname $(dirname $0)) bin/regen-certs docker pull kolab/centos7:latest docker-compose down docker-compose build docker-compose up -d kolab mariadb redis pushd ${base_dir}/src/ cp .env.example .env if [ -f ".env.local" ]; then # Ensure there's a line ending echo "" >> .env cat .env.local >> .env fi rm -rf vendor/ composer.lock composer install npm install find bootstrap/cache/ -type f ! -name ".gitignore" -delete ./artisan key:generate ./artisan jwt:secret -f ./artisan clear-compiled ./artisan cache:clear if [ ! -z "$(rpm -qv chromium 2>/dev/null)" ]; then chver=$(rpmquery --queryformat="%{VERSION}" chromium | awk -F'.' '{print $1}') ./artisan dusk:chrome-driver ${chver} fi if [ ! -f 'resources/countries.php' ]; then ./artisan data:countries fi npm run dev popd docker-compose up -d worker pushd ${base_dir}/src/ rm -rf database/database.sqlite +./artisan db:ping --wait php -dmemory_limit=512M ./artisan migrate:refresh --seed ./artisan serve popd diff --git a/docker/worker/kolab-worker.sh b/docker/worker/kolab-worker.sh index 46304603..01ca18dc 100644 --- a/docker/worker/kolab-worker.sh +++ b/docker/worker/kolab-worker.sh @@ -1,16 +1,18 @@ #!/bin/bash if [ -d /home/worker/src/ ]; then rm -rf /home/worker/src/ fi cp -a /home/worker/src.orig/ /home/worker/src/ mkdir -p /home/worker/src/storage/framework/{cache,sessions,views} chown -R worker:worker /home/worker/src/ pushd /home/worker/src/ rm -rf bootstrap/cache/ mkdir -p bootstrap/cache/ +./artisan db:ping --wait + ./artisan queue:work diff --git a/src/app/Console/Commands/DBPing.php b/src/app/Console/Commands/DBPing.php new file mode 100644 index 00000000..43f807a6 --- /dev/null +++ b/src/app/Console/Commands/DBPing.php @@ -0,0 +1,62 @@ +option('wait')) { + while (true) { + try { + $result = DB::select("SELECT 1"); + + if (sizeof($result) > 0) { + break; + } + } catch (\Exception $exception) { + sleep(1); + } + } + } else { + try { + $result = DB::select("SELECT 1"); + return 0; + } catch (\Exception $exception) { + return 1; + } + } + } +}