service pre/post exec
rodzic
191f3cc9d9
commit
b5ef8d9c0e
|
@ -39,6 +39,24 @@ else
|
||||||
echo "Cannot access \"$DOCKER_SOCK\", won't look for containers to stop and/or services to down"
|
echo "Cannot access \"$DOCKER_SOCK\", won't look for containers to stop and/or services to down"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
if [ -S "$DOCKER_SOCK" ]; then
|
||||||
|
# [command in service label]
|
||||||
|
TEMPFILE_SERVICES="$(mktemp)"
|
||||||
|
docker service ls \
|
||||||
|
--filter "label=docker-volume-backup.exec-pre-backup" \
|
||||||
|
--format '{{.ID}}' | \
|
||||||
|
xargs docker service inspect \
|
||||||
|
--format='{{ range $k, $v := .Spec.Labels }}{{- if eq $k "docker-volume-backup.exec-pre-backup" -}}{{$v}}{{end}}{{end}}' \
|
||||||
|
> "$TEMPFILE_SERVICES"
|
||||||
|
info "Pre-exec command(s) (services)"
|
||||||
|
cat "$TEMPFILE_SERVICES"
|
||||||
|
chmod u+x "$TEMPFILE_SERVICES"
|
||||||
|
"$TEMPFILE_SERVICES"
|
||||||
|
rm "$TEMPFILE_SERVICES"
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
if [ "$CONTAINERS_TO_STOP_TOTAL" != "0" ]; then
|
if [ "$CONTAINERS_TO_STOP_TOTAL" != "0" ]; then
|
||||||
info "Stopping containers"
|
info "Stopping containers"
|
||||||
docker stop $CONTAINERS_TO_STOP
|
docker stop $CONTAINERS_TO_STOP
|
||||||
|
@ -50,6 +68,7 @@ if [ "$SERVICES_TO_DOWN_TOTAL" != "0" ]; then
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -S "$DOCKER_SOCK" ]; then
|
if [ -S "$DOCKER_SOCK" ]; then
|
||||||
|
# docker exec container_ID [command in container label]
|
||||||
TEMPFILE_CONTAINERS="$(mktemp)"
|
TEMPFILE_CONTAINERS="$(mktemp)"
|
||||||
docker ps \
|
docker ps \
|
||||||
--filter "label=docker-volume-backup.exec-pre-backup" \
|
--filter "label=docker-volume-backup.exec-pre-backup" \
|
||||||
|
@ -61,16 +80,6 @@ if [ -S "$DOCKER_SOCK" ]; then
|
||||||
done < "$TEMPFILE_CONTAINERS"
|
done < "$TEMPFILE_CONTAINERS"
|
||||||
rm "$TEMPFILE_CONTAINERS"
|
rm "$TEMPFILE_CONTAINERS"
|
||||||
|
|
||||||
TEMPFILE_SERVICES="$(mktemp)"
|
|
||||||
docker service ls \
|
|
||||||
--filter "label=docker-volume-backup.exec-pre-backup" \
|
|
||||||
--format '{{.ID}} {{.Label "docker-volume-backup.exec-pre-backup"}}' \
|
|
||||||
> "$TEMPFILE_SERVICES"
|
|
||||||
while read line; do
|
|
||||||
info "Pre-exec command (services): $line"
|
|
||||||
docker exec $line
|
|
||||||
done < "$TEMPFILE_SERVICES"
|
|
||||||
rm "$TEMPFILE_SERVICES"
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
info "Creating backup"
|
info "Creating backup"
|
||||||
|
@ -80,6 +89,7 @@ BACKUP_SIZE="$(du --bytes $BACKUP_FILENAME | sed 's/\s.*$//')"
|
||||||
TIME_BACKED_UP="$(date +%s.%N)"
|
TIME_BACKED_UP="$(date +%s.%N)"
|
||||||
|
|
||||||
if [ -S "$DOCKER_SOCK" ]; then
|
if [ -S "$DOCKER_SOCK" ]; then
|
||||||
|
# docker exec container_ID [command in container label]
|
||||||
TEMPFILE_CONTAINERS="$(mktemp)"
|
TEMPFILE_CONTAINERS="$(mktemp)"
|
||||||
docker ps \
|
docker ps \
|
||||||
--filter "label=docker-volume-backup.exec-post-backup" \
|
--filter "label=docker-volume-backup.exec-post-backup" \
|
||||||
|
@ -90,17 +100,7 @@ if [ -S "$DOCKER_SOCK" ]; then
|
||||||
docker exec $line
|
docker exec $line
|
||||||
done < "$TEMPFILE_CONTAINERS"
|
done < "$TEMPFILE_CONTAINERS"
|
||||||
rm "$TEMPFILE_CONTAINERS"
|
rm "$TEMPFILE_CONTAINERS"
|
||||||
TEMPFILE_SERVICES="$(mktemp)"
|
|
||||||
docker service ls \
|
|
||||||
--filter "label=docker-volume-backup.exec-post-backup" \
|
|
||||||
--format '{{.ID}} {{.Label "docker-volume-backup.exec-post-backup"}}' \
|
|
||||||
> "$TEMPFILE_SERVICES"
|
|
||||||
while read line; do
|
|
||||||
info "Post-exec command (services): $line"
|
|
||||||
docker exec $line
|
|
||||||
done < "$TEMPFILE_SERVICES"
|
|
||||||
rm "$TEMPFILE_SERVICES"
|
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "$CONTAINERS_TO_STOP_TOTAL" != "0" ]; then
|
if [ "$CONTAINERS_TO_STOP_TOTAL" != "0" ]; then
|
||||||
|
@ -113,6 +113,23 @@ if [ "$SERVICES_TO_DOWN_TOTAL" != "0" ]; then
|
||||||
docker service scale $SERVICES_TO_UP
|
docker service scale $SERVICES_TO_UP
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [ -S "$DOCKER_SOCK" ]; then
|
||||||
|
# [command in service label]
|
||||||
|
TEMPFILE_SERVICES="$(mktemp)"
|
||||||
|
docker service ls \
|
||||||
|
--filter "label=docker-volume-backup.exec-post-backup" \
|
||||||
|
--format '{{.ID}}' | \
|
||||||
|
xargs docker service inspect \
|
||||||
|
--format='{{ range $k, $v := .Spec.Labels }}{{- if eq $k "docker-volume-backup.exec-post-backup" -}}{{$v}}{{end}}{{end}}' \
|
||||||
|
> "$TEMPFILE_SERVICES"
|
||||||
|
info "Post-exec command(s) (services)"
|
||||||
|
cat "$TEMPFILE_SERVICES"
|
||||||
|
chmod u+x "$TEMPFILE_SERVICES"
|
||||||
|
"$TEMPFILE_SERVICES"
|
||||||
|
rm "$TEMPFILE_SERVICES"
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
info "Waiting before processing"
|
info "Waiting before processing"
|
||||||
echo "Sleeping $BACKUP_WAIT_SECONDS seconds..."
|
echo "Sleeping $BACKUP_WAIT_SECONDS seconds..."
|
||||||
sleep "$BACKUP_WAIT_SECONDS"
|
sleep "$BACKUP_WAIT_SECONDS"
|
||||||
|
|
Ładowanie…
Reference in New Issue