#!/bin/sh set -e APP_DIR=/var/www/app GIT_URL="https://oauth2:${GIT_TOKEN}@${BACKEND_GIT_REPO}" BRANCH="${BACKEND_GIT_BRANCH:-main}" FORCE_CLONE="${FORCE_CLONE:-false}" chown www-data:www-data /var/www chown -R www-data:www-data "$APP_DIR" gosu www-data:www-data git config --global --add safe.directory "$APP_DIR" if [ ! -d "$APP_DIR/.git" ]; then mkdir -p "$APP_DIR" git clone -b "$BRANCH" "$GIT_URL" "$APP_DIR" chown -R www-data:www-data "$APP_DIR" else cd "$APP_DIR" chown -R www-data:www-data "$APP_DIR" CURRENT_BRANCH=$(gosu www-data git rev-parse --abbrev-ref HEAD) if [ "$CURRENT_BRANCH" = "$BRANCH" ]; then gosu www-data git fetch origin gosu www-data git reset --hard origin/"$CURRENT_BRANCH" else if [ "$FORCE_CLONE" = true ]; then cd /var/www rm -rf "$APP_DIR" mkdir app cd app git clone -b "$BRANCH" "$GIT_URL" "$APP_DIR" chown -R www-data:www-data "$APP_DIR" else gosu www-data git fetch origin gosu www-data git reset --hard origin/"$CURRENT_BRANCH" fi fi fi cd "$APP_DIR" mkdir -p /var/www/.composer/cache chown -R www-data:www-data /var/www/.composer if [ -f composer.json ]; then gosu www-data composer update --no-interaction --prefer-dist --optimize-autoloader fi cp /tmp/app.env .env chown www-data:www-data .env chmod 664 .env echo "Waiting for MariaDB..." until nc -z mariadb 3306; do sleep 2 echo "MariaDB not ready yet..." done echo "MariaDB is ready!" gosu www-data php artisan key:generate --force gosu www-data php artisan config:clear gosu www-data php artisan cache:clear gosu www-data php artisan migrate --force chmod -R 775 storage bootstrap/cache chmod -R 755 public