This commit is contained in:
Andrey Kondratev
2025-08-29 13:51:52 +05:00
parent ec9c541675
commit 9defce960a
6 changed files with 60 additions and 39 deletions

View File

@@ -105,36 +105,13 @@ jobs:
cd /opt/quixotic
git pull origin main
# Create production environment file from secrets
cat > .env.docker << EOF
NODE_ENV=production
PORT=3000
POSTGRES_DB=${{ secrets.POSTGRES_DB }}
POSTGRES_USER=${{ secrets.POSTGRES_USER }}
POSTGRES_PASSWORD=${{ secrets.POSTGRES_PASSWORD }}
DOMAIN=${{ secrets.DOMAIN }}
ACME_EMAIL=${{ secrets.ACME_EMAIL }}
TRAEFIK_AUTH=${{ secrets.TRAEFIK_AUTH }}
TELEGRAM_BOT_TOKEN=${{ secrets.TELEGRAM_BOT_TOKEN }}
WEB_APP_URL=https://${{ secrets.DOMAIN }}
DATABASE_URL=postgresql://${{ secrets.POSTGRES_USER }}:${{ secrets.POSTGRES_PASSWORD }}@postgres:5432/${{ secrets.POSTGRES_DB }}
EOF
# Login to GitHub Container Registry
echo ${{ secrets.GITHUB_TOKEN }} | docker login ghcr.io -u ${{ github.actor }} --password-stdin
# Pull latest image
docker pull ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:latest
# Deploy with zero downtime using production override
docker-compose -f docker-compose.yml -f docker-compose.prod.yml --env-file .env.docker pull
# Stop existing containers if they exist
if docker-compose -f docker-compose.yml -f docker-compose.prod.yml --env-file .env.docker ps -q | grep -q .; then
docker-compose -f docker-compose.yml -f docker-compose.prod.yml --env-file .env.docker down --remove-orphans
fi
docker-compose -f docker-compose.yml -f docker-compose.prod.yml --env-file .env.docker up -d
# Deploy using production compose
docker-compose -f docker-compose.yml -f docker-compose.prod.yml pull
docker-compose -f docker-compose.yml -f docker-compose.prod.yml down --remove-orphans
docker-compose -f docker-compose.yml -f docker-compose.prod.yml up -d
# Cleanup old images
docker image prune -f