Docker image to create regular backups of a Microsoft SQL Server image.
Service | Stats |
---|---|
Docker | |
GitHub |
Topic | Description |
---|---|
Image | See Docker Hub. |
Source | See GitHub. |
This container can create backups on a Microsoft SQL Server container.
NOTE:
The backup is written to a directory /backup
inside the Microsoft SQL Server container, not to a volume in the backup container.
For using the cleanup feature attach the same /backup
volume in the bbtsoftwareag/mssql-backup
container.
Tag | Description | Size |
---|---|---|
latest | Latest master build | |
0.1.0 | Release 0.1.0 | |
0.2.0 | Release 0.2.0 | |
0.3.0 | Release 0.3.0 | |
0.4.0 | Release 0.4.0 | |
0.5.0 | Release 0.5.0 | |
0.5.1 | Release 0.5.1 |
These environment variables are supported:
Environment variable | Default value | Description |
---|---|---|
DB_SERVER | mssql |
Name or address of the database server to backup. Normally this should be the name of the Microsoft SQL Server service. |
DB_USER | SA |
User used to connect to the database server. |
DB_PASSWORD | Password used to connect to the database server. | |
DB_NAMES | Names of the databases for which a backup should be created. | |
TZ | Timezone to use. | |
CRON_SCHEDULE | 0 1 * * sun |
Cron schedule for running backups. NOTE: There is no check if there's already a backup running when starting the backup job. Therefore time interval needs to be longer than the maximum expected backup time for all databases. |
BACKUP_CLEANUP | false |
Set to "true" if you want to let the cronjob remove files older than $BACKUP_AGE days |
BACKUP_AGE | 7 |
Number of days to keep backups in backup directory |
SKIP_BACKUP_LOG | false |
Skip step to backup the transaction log . |
PACK | Possible values: tar , zip . If defined, compresses the output files into a single .tar.gz (or zip )-File. |
|
ZIP_PASSWORD | Sets the password for the zip to the given value. Only works if PACK is set to zip |
|
PUSH_REMOTE_MODE | The possible values move or copy activates pushing the backup files to a mapped remote directory. The volume remote must be mapped. |
|
SMTP_HOST | If this is set, email reporting is enabled by sending the results of the backup process to MAIL_TO . You pretty much have to define all the other SMTP_* variables, when the host is defined. |
|
SMTP_PORT | The port of the SMTP server | |
SMTP_USER | The username used to login against the SMTP server | |
SMTP_PASS | The password for connecting to the SMTP server | |
SMTP_FROM | The E-mail address from which mails should be sent from | |
SMTP_TLS | on |
Whether TLS should be used when connecting to the SMTP server |
MAIL_TO | The target E-mail address for receiving mail reports |
The following example will create backups of the databases MyFirstDatabaseToRestore
and MySecondDatabaseToRestore
running inside the db
container every day at 01.00 CEST and stores it in the /storage/backup
directory on the host machine.
version: '3.7'
services:
db:
image: mcr.microsoft.com/mssql/server
volumes:
- /storage/backup:/backup
environment:
- ACCEPT_EULA=Y
- MSSQL_PID=Express
- SA_PASSWORD=MySecre(12)tPassword
networks:
- default
backup:
image: bbtsoftwareag/mssql-backup
# for using the cleanup feature, use the backup volume from db.
# volumes:
# - /storage/backup:/backup
environment:
- TZ=Europe/Zurich
- DB_SERVER=db
- DB_USER=SA
- DB_PASSWORD=MySecre(12)tPassword
- "DB_NAMES=
MyFirstDatabaseToRestore
MySecondDatabaseToRestore"
- CRON_SCHEDULE=0 1 * * *
networks:
- default
We added a small docker environment in the example
subdirectory for development
or tests
with a own readme file.
For questions and to discuss ideas & feature requests, use the GitHub discussions on the BBT Software docker-mssql-backup repository.
Contributions are welcome. See Contribution Guidelines.