31 lines
647 B
Bash
Executable File
31 lines
647 B
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
log() {
|
|
printf '[redeploy] %s\n' "$*"
|
|
}
|
|
|
|
if [[ ! -d .git ]]; then
|
|
printf '[redeploy] ERROR: run this script from the repository root.\n' >&2
|
|
exit 1
|
|
fi
|
|
|
|
log 'Stopping stack'
|
|
docker compose down
|
|
|
|
log 'Removing current local compose image(s)'
|
|
mapfile -t IMAGE_NAMES < <(docker compose config --images 2>/dev/null | sed '/^$/d' | sort -u)
|
|
if [[ "${#IMAGE_NAMES[@]}" -gt 0 ]]; then
|
|
docker image rm -f "${IMAGE_NAMES[@]}" || true
|
|
else
|
|
log 'No compose-managed local images found to remove.'
|
|
fi
|
|
|
|
log 'Pulling latest git changes'
|
|
git pull
|
|
|
|
log 'Starting stack'
|
|
docker compose up -d
|
|
|
|
log 'Redeploy complete'
|