Files
SAE-BUT2-docker/docker/php/scripts/init-dev.sh
T
2026-02-07 20:59:02 +01:00

72 lines
1.8 KiB
Bash

#!/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 install --no-interaction --prefer-dist
fi
cp /tmp/app.env .env
/usr/local/bin/wait-typesense.sh
TYPESENSE_API_KEY=$(cat /typesense-data/api-key)
sed -i "s/^TYPESENSE_API_KEY=.*/TYPESENSE_API_KEY=$TYPESENSE_API_KEY/" .env
chown www-data:www-data .env
chmod 664 .env
/usr/local/bin/wait-mariadb.sh
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