You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

38 lines
1.5 KiB

#!/bin/bash
set -e
# Check if the '--dev' argument is provided
if [ "$1" == "--dev" ]; then
echo "Run development docker"
DOCKER_BUILDKIT=1 COMPOSE_DOCKER_CLI_BUILD=1 docker compose -f docker-compose.yml up -d --build
else
echo "Run Production docker"
# در صورت بروز هرگونه خطا، وضعیت FAIL ثبت شود
trap 'echo "FAIL" > /tmp/dovodi_backend_deploy_status.txt' ERR
echo "🧹 [1/4] Pre-build cleanup: freeing up disk space safely..."
# ۱. پاکسازی کامل تمام کش‌های بیلد داکر بدون دست زدن به کانتینرهای فعال
docker builder prune -a -f 2>/dev/null || true
# ۲. پاکسازی ایمیج‌های قدیمی و معلق (Dangling)
docker image prune -f 2>/dev/null || true
# ۳. پاکسازی کش پکیج‌های سیستم‌عامل
apt-get clean 2>/dev/null || true
echo "📥 [2/4] Pulling latest backend changes from master..."
git checkout master
git fetch origin
git reset --hard origin/master
echo "🚀 [3/4] Building and deploying backend container..."
DOCKER_BUILDKIT=1 COMPOSE_DOCKER_CLI_BUILD=1 docker compose -f docker-compose.prod.yml up -d --build
echo "✨ [4/4] Post-build cleanup..."
# پاکسازی ایمیج قدیمی که بعد از بیلد جدید معلق شده است
docker image prune -f 2>/dev/null || true
echo "SUCCESS" > /tmp/dovodi_backend_deploy_status.txt
echo "🎉 Dovodi Backend build and deployment finished successfully!"
fi