diff --git a/.gitea/workflows/itam_production_deploy.yml b/.gitea/workflows/itam_production_deploy.yml index b1f5a78..1085ace 100644 --- a/.gitea/workflows/itam_production_deploy.yml +++ b/.gitea/workflows/itam_production_deploy.yml @@ -80,7 +80,7 @@ jobs: EFFECTIVE_BACKUP_ROOT="${PROD_BACKUP_ROOT:-/home/user/dachs_backups}" - ssh "${PROD_USER}@${PROD_HOST}" "export DEPLOY_PATH='${PROD_DEPLOY_PATH}' BACKUP_ROOT='${EFFECTIVE_BACKUP_ROOT}'; sh -eu -s" <<'REMOTE_BACKUP' + ssh "${PROD_USER}@${PROD_HOST}" "export DEPLOY_PATH='${PROD_DEPLOY_PATH}' BACKUP_ROOT='${EFFECTIVE_BACKUP_ROOT}' DB_USER='${DB_USER}' DB_PASS='${DB_PASS}' DB_NAME='${DB_NAME}' DB_HOST='${DB_HOST}'; sh -eu -s" <<'REMOTE_BACKUP' case "$BACKUP_ROOT" in "$DEPLOY_PATH"|"$DEPLOY_PATH"/*) echo "Backup path must be outside deploy path: $BACKUP_ROOT" @@ -90,13 +90,10 @@ jobs: if [ -d "$DEPLOY_PATH/.git" ]; then mkdir -p "$BACKUP_ROOT" - cd "$DEPLOY_PATH" - - if [ -f Makefile ] && [ -f scripts/backup.sh ]; then - make predeploy-backup BACKUP_ROOT="$BACKUP_ROOT" - else - echo "Skipping pre-deploy backup because current deployed revision does not contain Makefile backup tooling." - fi + echo "Starting docker-based backup..." + + docker exec itam-backend mysqldump -u"$DB_USER" -p"$DB_PASS" -h"$DB_HOST" "$DB_NAME" > "$BACKUP_ROOT/backup_$(date +%Y%m%d).sql" + echo "Backup completed successfully." else echo "Skipping pre-deploy backup because no existing deployment was found." fi diff --git a/Dockerfile.backend.prod b/Dockerfile.backend.prod index 5d1f381..40fccec 100644 --- a/Dockerfile.backend.prod +++ b/Dockerfile.backend.prod @@ -8,7 +8,7 @@ ENV NODE_ENV=production WORKDIR /app # Install curl for health checks and dumb-init for proper signal handling -RUN apk add --no-cache curl dumb-init +RUN apk add --no-cache curl dumb-init mysql-client # Copy package files COPY package*.json ./ diff --git a/Makefile b/Makefile index b781027..d08a69a 100644 --- a/Makefile +++ b/Makefile @@ -26,8 +26,8 @@ files-backup: full-backup: @ENV_FILE="$(ENV_FILE)" BACKUP_ROOT="$(BACKUP_ROOT)" sh "$(BACKUP_SCRIPT)" full -predeploy-backup: - @ENV_FILE="$(ENV_FILE)" BACKUP_ROOT="$(BACKUP_ROOT)" sh "$(BACKUP_SCRIPT)" full +# predeploy-backup: +# @ENV_FILE="$(ENV_FILE)" BACKUP_ROOT="$(BACKUP_ROOT)" sh "$(BACKUP_SCRIPT)" full cleanup-backups: @BACKUP_ROOT="$(BACKUP_ROOT)" RETENTION_DAYS="$(RETENTION_DAYS)" sh "$(BACKUP_SCRIPT)" cleanup \ No newline at end of file