fix(volume-backups): restart container before S3 upload in volume backup

This commit is contained in:
EL OUAZIZI Walid
2026-03-15 06:46:33 +01:00
committed by GitHub
parent 8eace173b9
commit 2f37235aea
@@ -39,7 +39,7 @@ export const backupVolume = async (
const rcloneCommand = `rclone copyto ${rcloneFlags.join(" ")} "${volumeBackupPath}/${backupFileName}" "${rcloneDestination}"`; const rcloneCommand = `rclone copyto ${rcloneFlags.join(" ")} "${volumeBackupPath}/${backupFileName}" "${rcloneDestination}"`;
const baseCommand = ` const backupCommand = `
set -e set -e
echo "Volume name: ${volumeName}" echo "Volume name: ${volumeName}"
echo "Backup file name: ${backupFileName}" echo "Backup file name: ${backupFileName}"
@@ -52,6 +52,10 @@ export const backupVolume = async (
ubuntu \ ubuntu \
bash -c "cd /volume_data && tar cvf /backup/${backupFileName} ." bash -c "cd /volume_data && tar cvf /backup/${backupFileName} ."
echo "Volume backup done ✅" echo "Volume backup done ✅"
`;
const uploadCommand = `
set -e
echo "Starting upload to S3..." echo "Starting upload to S3..."
${rcloneCommand} ${rcloneCommand}
echo "Upload to S3 done ✅" echo "Upload to S3 done ✅"
@@ -61,7 +65,10 @@ export const backupVolume = async (
`; `;
if (!turnOff) { if (!turnOff) {
return baseCommand; return `
${backupCommand}
${uploadCommand}
`;
} }
const serviceLockId = const serviceLockId =
@@ -110,9 +117,10 @@ export const backupVolume = async (
ACTUAL_REPLICAS=$(docker service inspect ${volumeBackup.application?.appName} --format "{{.Spec.Mode.Replicated.Replicas}}") ACTUAL_REPLICAS=$(docker service inspect ${volumeBackup.application?.appName} --format "{{.Spec.Mode.Replicated.Replicas}}")
echo "Actual replicas: $ACTUAL_REPLICAS" echo "Actual replicas: $ACTUAL_REPLICAS"
docker service update --replicas=0 ${volumeBackup.application?.appName} docker service update --replicas=0 ${volumeBackup.application?.appName}
${baseCommand} ${backupCommand}
echo "Starting application to $ACTUAL_REPLICAS replicas" echo "Starting application to $ACTUAL_REPLICAS replicas"
docker service update --replicas=$ACTUAL_REPLICAS --with-registry-auth ${volumeBackup.application?.appName} docker service update --replicas=$ACTUAL_REPLICAS --with-registry-auth ${volumeBackup.application?.appName}
${uploadCommand}
`); `);
} }
if (serviceType === "compose") { if (serviceType === "compose") {
@@ -147,8 +155,9 @@ export const backupVolume = async (
} }
return lockWrapper(` return lockWrapper(`
${stopCommand} ${stopCommand}
${baseCommand} ${backupCommand}
${startCommand} ${startCommand}
${uploadCommand}
`); `);
} }
}; };