Deployment-Rules for second server
This commit is contained in:
Executable
+82
@@ -0,0 +1,82 @@
|
||||
#!/usr/bin/env bash
|
||||
#
|
||||
# Deployment von mareike auf endeavour (KeyHelp-Server), siehe docs/implement-endeavour.md.
|
||||
#
|
||||
# Liegt auf dem Server als KOPIE unter /opt/mareike/bin/deploy.sh – nicht direkt aus src/ ausführen,
|
||||
# weil der git-Checkout sonst das laufende Skript austauscht.
|
||||
#
|
||||
# Aufruf (als root):
|
||||
# deploy.sh [REF] Tag, Branch oder Commit ausrollen (Default: main)
|
||||
# deploy.sh artisan … php artisan im laufenden app-Container
|
||||
# deploy.sh compose … docker compose mit der endeavour-Konfiguration (z. B. "compose logs -f")
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
MAREIKE_BASE="${MAREIKE_BASE:-/opt/mareike}"
|
||||
MAREIKE_USER="${MAREIKE_USER:-mareike-docker}"
|
||||
SRC="$MAREIKE_BASE/src"
|
||||
|
||||
export MAREIKE_ENV_FILE="$MAREIKE_BASE/shared/.env"
|
||||
export MAREIKE_STORAGE="$MAREIKE_BASE/storage"
|
||||
export MAREIKE_HTTP_PORT="${MAREIKE_HTTP_PORT:-8080}"
|
||||
export MAREIKE_DB_SOCKET_DIR="${MAREIKE_DB_SOCKET_DIR:-/run/mysqld}"
|
||||
MAREIKE_UID="$(id -u "$MAREIKE_USER")"
|
||||
MAREIKE_GID="$(id -g "$MAREIKE_USER")"
|
||||
export MAREIKE_UID MAREIKE_GID
|
||||
|
||||
compose() {
|
||||
docker compose -f "$SRC/docker/endeavour/compose.yaml" "$@"
|
||||
}
|
||||
|
||||
case "${1:-}" in
|
||||
artisan)
|
||||
shift
|
||||
compose exec app php artisan "$@"
|
||||
exit
|
||||
;;
|
||||
compose)
|
||||
shift
|
||||
compose "$@"
|
||||
exit
|
||||
;;
|
||||
esac
|
||||
|
||||
REF="${1:-main}"
|
||||
|
||||
if [[ ! -f "$MAREIKE_ENV_FILE" ]]; then
|
||||
echo "Fehlt: $MAREIKE_ENV_FILE (Vorlage: docker/endeavour/env.production.example)" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "==> Quellcode auf '$REF' bringen"
|
||||
git -C "$SRC" fetch --tags --prune --force origin
|
||||
if git -C "$SRC" show-ref --verify --quiet "refs/remotes/origin/$REF"; then
|
||||
git -C "$SRC" checkout --force -B "$REF" "origin/$REF"
|
||||
else
|
||||
git -C "$SRC" checkout --force --detach "$REF"
|
||||
fi
|
||||
git -C "$SRC" clean -fd
|
||||
|
||||
echo "==> storage/ vorbereiten"
|
||||
for dir in \
|
||||
"" \
|
||||
app app/private app/public \
|
||||
framework framework/cache framework/cache/data framework/sessions framework/views \
|
||||
logs temp
|
||||
do
|
||||
install -d -m 0775 -o "$MAREIKE_USER" -g "$MAREIKE_GID" "$MAREIKE_STORAGE/$dir"
|
||||
done
|
||||
|
||||
echo "==> Images bauen"
|
||||
compose build --pull
|
||||
|
||||
echo "==> Datenbank migrieren"
|
||||
compose run --rm --no-deps app php artisan migrate --force
|
||||
|
||||
echo "==> Container starten"
|
||||
compose up -d --remove-orphans
|
||||
compose exec -T app php artisan view:clear
|
||||
|
||||
docker image prune -f > /dev/null
|
||||
|
||||
echo "==> mareike $(cat "$SRC/version") ($(git -C "$SRC" rev-parse --short HEAD)) läuft."
|
||||
Reference in New Issue
Block a user