mirror of
https://github.com/offen/docker-volume-backup.git
synced 2025-12-05 17:18:02 +01:00
Compare commits
5 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b2d4c48082 | ||
|
|
2b7f0c52c0 | ||
|
|
cc912d7b64 | ||
|
|
26c8ba971f | ||
|
|
3f10d0f817 |
@@ -10,7 +10,7 @@ COPY cmd/backup ./cmd/backup/
|
|||||||
WORKDIR /app/cmd/backup
|
WORKDIR /app/cmd/backup
|
||||||
RUN go build -o backup .
|
RUN go build -o backup .
|
||||||
|
|
||||||
FROM alpine:3.15
|
FROM alpine:3.16
|
||||||
|
|
||||||
WORKDIR /root
|
WORKDIR /root
|
||||||
|
|
||||||
|
|||||||
@@ -1113,9 +1113,9 @@ services:
|
|||||||
database:
|
database:
|
||||||
image: mariadb:latest
|
image: mariadb:latest
|
||||||
labels:
|
labels:
|
||||||
- docker-volume-backup.exec-pre=/bin/sh -c 'mysqldump -psecret --all-databases > /tmp/dumps/dump.sql'
|
- docker-volume-backup.archive-pre=/bin/sh -c 'mysqldump -psecret --all-databases > /tmp/dumps/dump.sql'
|
||||||
volumes:
|
volumes:
|
||||||
- app_data:/tmp/dumps
|
- data:/tmp/dumps
|
||||||
backup:
|
backup:
|
||||||
image: offen/docker-volume-backup:v2
|
image: offen/docker-volume-backup:v2
|
||||||
environment:
|
environment:
|
||||||
|
|||||||
@@ -534,7 +534,8 @@ func (s *script) copyArchive() error {
|
|||||||
ContentType: "application/tar+gzip",
|
ContentType: "application/tar+gzip",
|
||||||
StorageClass: s.c.AwsStorageClass,
|
StorageClass: s.c.AwsStorageClass,
|
||||||
}); err != nil {
|
}); err != nil {
|
||||||
return fmt.Errorf("copyBackup: error uploading backup to remote storage: %w", err)
|
errResp := minio.ToErrorResponse(err)
|
||||||
|
return fmt.Errorf("copyBackup: error uploading backup to remote storage: [Message]: '%s', [Code]: %s, [StatusCode]: %d", errResp.Message, errResp.Code, errResp.StatusCode)
|
||||||
}
|
}
|
||||||
s.logger.Infof("Uploaded a copy of backup `%s` to bucket `%s`.", s.file, s.c.AwsS3BucketName)
|
s.logger.Infof("Uploaded a copy of backup `%s` to bucket `%s`.", s.file, s.c.AwsS3BucketName)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ if [ ! -d "/etc/dockervolumebackup/conf.d" ]; then
|
|||||||
else
|
else
|
||||||
echo "/etc/dockervolumebackup/conf.d was found, using configuration files from this directory."
|
echo "/etc/dockervolumebackup/conf.d was found, using configuration files from this directory."
|
||||||
|
|
||||||
|
crontab -r && touch /etc/crontabs/root
|
||||||
for file in /etc/dockervolumebackup/conf.d/*; do
|
for file in /etc/dockervolumebackup/conf.d/*; do
|
||||||
source $file
|
source $file
|
||||||
BACKUP_CRON_EXPRESSION="${BACKUP_CRON_EXPRESSION:-@daily}"
|
BACKUP_CRON_EXPRESSION="${BACKUP_CRON_EXPRESSION:-@daily}"
|
||||||
|
|||||||
@@ -17,6 +17,20 @@ services:
|
|||||||
volumes:
|
volumes:
|
||||||
- app_data:/tmp/volume
|
- app_data:/tmp/volume
|
||||||
|
|
||||||
|
other_database:
|
||||||
|
image: mariadb:10.7
|
||||||
|
deploy:
|
||||||
|
restart_policy:
|
||||||
|
condition: on-failure
|
||||||
|
environment:
|
||||||
|
MARIADB_ROOT_PASSWORD: test
|
||||||
|
MARIADB_DATABASE: backup
|
||||||
|
labels:
|
||||||
|
- docker-volume-backup.archive-pre=touch /tmp/volume/not-relevant.txt
|
||||||
|
- docker-volume-backup.exec-label=not-relevant
|
||||||
|
volumes:
|
||||||
|
- app_data:/tmp/volume
|
||||||
|
|
||||||
backup:
|
backup:
|
||||||
image: offen/docker-volume-backup:${TEST_VERSION:-canary}
|
image: offen/docker-volume-backup:${TEST_VERSION:-canary}
|
||||||
deploy:
|
deploy:
|
||||||
|
|||||||
@@ -18,6 +18,11 @@ if [ ! -f ./backup/data/dump.sql ]; then
|
|||||||
fi
|
fi
|
||||||
pass "Found expected file."
|
pass "Found expected file."
|
||||||
|
|
||||||
|
if [ -f ./backup/data/not-relevant.txt ]; then
|
||||||
|
fail "Command ran for container with other label."
|
||||||
|
fi
|
||||||
|
pass "Command did not run for container with other label."
|
||||||
|
|
||||||
if [ -f ./backup/data/post.txt ]; then
|
if [ -f ./backup/data/post.txt ]; then
|
||||||
fail "File created in post command was present in backup."
|
fail "File created in post command was present in backup."
|
||||||
fi
|
fi
|
||||||
|
|||||||
Reference in New Issue
Block a user