mirror of
https://github.com/offen/docker-volume-backup.git
synced 2024-11-22 21:30:28 +01:00
Rename and deprecate BACKUP_STOP_CONTAINER_LABEL
This commit is contained in:
parent
57e7f2af9e
commit
7d489a95e3
@ -37,7 +37,8 @@ type Config struct {
|
|||||||
BackupRetentionDays int32 `split_words:"true" default:"-1"`
|
BackupRetentionDays int32 `split_words:"true" default:"-1"`
|
||||||
BackupPruningLeeway time.Duration `split_words:"true" default:"1m"`
|
BackupPruningLeeway time.Duration `split_words:"true" default:"1m"`
|
||||||
BackupPruningPrefix string `split_words:"true"`
|
BackupPruningPrefix string `split_words:"true"`
|
||||||
BackupStopContainerLabel string `split_words:"true" default:"true"`
|
BackupStopContainerLabel string `split_words:"true"`
|
||||||
|
BackupStopDuringBackupLabel string `split_words:"true" default:"true"`
|
||||||
BackupStopServiceTimeout time.Duration `split_words:"true" default:"5m"`
|
BackupStopServiceTimeout time.Duration `split_words:"true" default:"5m"`
|
||||||
BackupFromSnapshot bool `split_words:"true"`
|
BackupFromSnapshot bool `split_words:"true"`
|
||||||
BackupExcludeRegexp RegexpDecoder `split_words:"true"`
|
BackupExcludeRegexp RegexpDecoder `split_words:"true"`
|
||||||
|
@ -322,7 +322,7 @@ func (s *script) createArchive() error {
|
|||||||
"Using BACKUP_FROM_SNAPSHOT has been deprecated and will be removed in the next major version.",
|
"Using BACKUP_FROM_SNAPSHOT has been deprecated and will be removed in the next major version.",
|
||||||
)
|
)
|
||||||
s.logger.Warn(
|
s.logger.Warn(
|
||||||
"Please use `archive-pre` and `archive-post` commands to prepare your backup sources. Refer to the README for an upgrade guide.",
|
"Please use `archive-pre` and `archive-post` commands to prepare your backup sources. Refer to the documentation for an upgrade guide.",
|
||||||
)
|
)
|
||||||
backupSources = filepath.Join("/tmp", s.c.BackupSources)
|
backupSources = filepath.Join("/tmp", s.c.BackupSources)
|
||||||
// copy before compressing guard against a situation where backup folder's content are still growing.
|
// copy before compressing guard against a situation where backup folder's content are still growing.
|
||||||
|
@ -5,6 +5,7 @@ import (
|
|||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"io"
|
"io"
|
||||||
|
"os"
|
||||||
"sync"
|
"sync"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
@ -87,9 +88,23 @@ func (s *script) stopContainersAndServices() (func() error, error) {
|
|||||||
}
|
}
|
||||||
isDockerSwarm := dockerInfo.Swarm.LocalNodeState != "inactive"
|
isDockerSwarm := dockerInfo.Swarm.LocalNodeState != "inactive"
|
||||||
|
|
||||||
|
labelValue := s.c.BackupStopDuringBackupLabel
|
||||||
|
if s.c.BackupStopContainerLabel != "" {
|
||||||
|
s.logger.Warn(
|
||||||
|
"Using BACKUP_STOP_CONTAINER_LABEL has been deprecated and will be removed in the next major version.",
|
||||||
|
)
|
||||||
|
s.logger.Warn(
|
||||||
|
"Please use BACKUP_STOP_DURING_BACKUP_LABEL instead. Refer to the docs for an upgrade guide.",
|
||||||
|
)
|
||||||
|
if _, ok := os.LookupEnv("BACKUP_STOP_DURING_BACKUP_LABEL"); ok {
|
||||||
|
return noop, errors.New("(*script).stopContainersAndServices: both BACKUP_STOP_DURING_BACKUP_LABEL and BACKUP_STOP_CONTAINER_LABEL have been set, cannot continue")
|
||||||
|
}
|
||||||
|
labelValue = s.c.BackupStopContainerLabel
|
||||||
|
}
|
||||||
|
|
||||||
filterMatchLabel := fmt.Sprintf(
|
filterMatchLabel := fmt.Sprintf(
|
||||||
"docker-volume-backup.stop-during-backup=%s",
|
"docker-volume-backup.stop-during-backup=%s",
|
||||||
s.c.BackupStopContainerLabel,
|
labelValue,
|
||||||
)
|
)
|
||||||
|
|
||||||
allContainers, err := s.cli.ContainerList(context.Background(), types.ContainerListOptions{})
|
allContainers, err := s.cli.ContainerList(context.Background(), types.ContainerListOptions{})
|
||||||
|
@ -0,0 +1,19 @@
|
|||||||
|
---
|
||||||
|
title: Replace deprecated BACKUP_STOP_CONTAINER_LABEL setting
|
||||||
|
layout: default
|
||||||
|
parent: How Tos
|
||||||
|
nav_order: 19
|
||||||
|
---
|
||||||
|
|
||||||
|
# Replace deprecated `BACKUP_STOP_CONTAINER_LABEL` setting
|
||||||
|
|
||||||
|
Version `v2.36.0` deprecated the `BACKUP_STOP_CONTAINER_LABEL` setting and renamed it `BACKUP_STOP_DURING_BACKUP_LABEL` which is supposed to signal that this will stop both containers _and_ services.
|
||||||
|
Migrating is done by renaming the key for your custom value:
|
||||||
|
|
||||||
|
```diff
|
||||||
|
env:
|
||||||
|
- BACKUP_STOP_CONTAINER_LABEL: database
|
||||||
|
+ BACKUP_STOP_DURING_BACKUP_LABEL: database
|
||||||
|
```
|
||||||
|
|
||||||
|
The old key will stay supported until the next major version, but logs a warning each time a backup is taken.
|
@ -76,7 +76,7 @@ Configuration, data about the backup run and helper functions will be passed to
|
|||||||
|
|
||||||
Here is a list of all data passed to the template:
|
Here is a list of all data passed to the template:
|
||||||
|
|
||||||
* `Config`: this object holds the configuration that has been passed to the script. The field names are the name of the recognized environment variables converted in PascalCase. (e.g. `BACKUP_STOP_CONTAINER_LABEL` becomes `BackupStopContainerLabel`)
|
* `Config`: this object holds the configuration that has been passed to the script. The field names are the name of the recognized environment variables converted in PascalCase. (e.g. `BACKUP_STOP_DURING_BACKUP_LABEL` becomes `BackupStopDuringBackupLabel`)
|
||||||
* `Error`: the error that made the backup fail. Only available in the `title_failure` and `body_failure` templates
|
* `Error`: the error that made the backup fail. Only available in the `title_failure` and `body_failure` templates
|
||||||
* `Stats`: objects that holds stats regarding script execution. In case of an unsuccessful run, some information may not be available.
|
* `Stats`: objects that holds stats regarding script execution. In case of an unsuccessful run, some information may not be available.
|
||||||
* `StartTime`: time when the script started execution
|
* `StartTime`: time when the script started execution
|
||||||
|
@ -14,7 +14,7 @@ In many cases, it will be desirable to stop the services that are consuming the
|
|||||||
This image can automatically stop and restart containers and services.
|
This image can automatically stop and restart containers and services.
|
||||||
By default, any container that is labeled `docker-volume-backup.stop-during-backup=true` will be stopped before the backup is being taken and restarted once it has finished.
|
By default, any container that is labeled `docker-volume-backup.stop-during-backup=true` will be stopped before the backup is being taken and restarted once it has finished.
|
||||||
|
|
||||||
In case you need more fine grained control about which containers should be stopped (e.g. when backing up multiple volumes on different schedules), you can set the `BACKUP_STOP_CONTAINER_LABEL` environment variable and then use the same value for labeling:
|
In case you need more fine grained control about which containers should be stopped (e.g. when backing up multiple volumes on different schedules), you can set the `BACKUP_STOP_DURING_BACKUP_LABEL` environment variable and then use the same value for labeling:
|
||||||
|
|
||||||
```yml
|
```yml
|
||||||
version: '3'
|
version: '3'
|
||||||
@ -28,7 +28,7 @@ services:
|
|||||||
backup:
|
backup:
|
||||||
image: offen/docker-volume-backup:v2
|
image: offen/docker-volume-backup:v2
|
||||||
environment:
|
environment:
|
||||||
BACKUP_STOP_CONTAINER_LABEL: service1
|
BACKUP_STOP_DURING_BACKUP_LABEL: service1
|
||||||
volumes:
|
volumes:
|
||||||
- data:/backup/my-app-backup:ro
|
- data:/backup/my-app-backup:ro
|
||||||
- /var/run/docker.sock:/var/run/docker.sock:ro
|
- /var/run/docker.sock:/var/run/docker.sock:ro
|
||||||
|
@ -352,7 +352,7 @@ services:
|
|||||||
AWS_ACCESS_KEY_ID: AKIAIOSFODNN7EXAMPLE
|
AWS_ACCESS_KEY_ID: AKIAIOSFODNN7EXAMPLE
|
||||||
AWS_SECRET_ACCESS_KEY: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
|
AWS_SECRET_ACCESS_KEY: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
|
||||||
# Label the container using the `data_1` volume as `docker-volume-backup.stop-during-backup=service1`
|
# Label the container using the `data_1` volume as `docker-volume-backup.stop-during-backup=service1`
|
||||||
BACKUP_STOP_CONTAINER_LABEL: service1
|
BACKUP_STOP_DURING_BACKUP_LABEL: service1
|
||||||
volumes:
|
volumes:
|
||||||
- data_1:/backup/data-1-backup:ro
|
- data_1:/backup/data-1-backup:ro
|
||||||
- /var/run/docker.sock:/var/run/docker.sock:ro
|
- /var/run/docker.sock:/var/run/docker.sock:ro
|
||||||
@ -362,7 +362,7 @@ services:
|
|||||||
<<: *backup_environment
|
<<: *backup_environment
|
||||||
# Label the container using the `data_2` volume as `docker-volume-backup.stop-during-backup=service2`
|
# Label the container using the `data_2` volume as `docker-volume-backup.stop-during-backup=service2`
|
||||||
BACKUP_CRON_EXPRESSION: "0 3 * * *"
|
BACKUP_CRON_EXPRESSION: "0 3 * * *"
|
||||||
BACKUP_STOP_CONTAINER_LABEL: service2
|
BACKUP_STOP_DURING_BACKUP_LABEL: service2
|
||||||
volumes:
|
volumes:
|
||||||
- data_2:/backup/data-2-backup:ro
|
- data_2:/backup/data-2-backup:ro
|
||||||
- /var/run/docker.sock:/var/run/docker.sock:ro
|
- /var/run/docker.sock:/var/run/docker.sock:ro
|
||||||
|
@ -316,15 +316,14 @@ You can populate below template according to your requirements and use it as you
|
|||||||
|
|
||||||
# GPG_PASSPHRASE="<xxx>"
|
# GPG_PASSPHRASE="<xxx>"
|
||||||
|
|
||||||
########### STOPPING CONTAINERS DURING BACKUP
|
########### STOPPING CONTAINERS AND SERVICES DURING BACKUP
|
||||||
|
|
||||||
# Containers can be stopped by applying a
|
# Containers or services can be stopped by applying a
|
||||||
# `docker-volume-backup.stop-during-backup` label. By default, all containers
|
# `docker-volume-backup.stop-during-backup` label. By default, all containers and
|
||||||
# that are labeled with `true` will be stopped. If you need more fine grained
|
# services that are labeled with `true` will be stopped. If you need more fine
|
||||||
# control (e.g. when running multiple containers based on this image), you can
|
# grained control (e.g. when running multiple containers based on this image),
|
||||||
# override this default by specifying a different value here.
|
# you can override this default by specifying a different value here.
|
||||||
|
# BACKUP_STOP_DURING_BACKUP_LABEL="service1"
|
||||||
# BACKUP_STOP_CONTAINER_LABEL="service1"
|
|
||||||
|
|
||||||
# When trying to scale down Docker Swarm services, give up after
|
# When trying to scale down Docker Swarm services, give up after
|
||||||
# the specified amount of time in case the service has not converged yet.
|
# the specified amount of time in case the service has not converged yet.
|
||||||
|
Loading…
Reference in New Issue
Block a user