This repository has been archived by the owner on May 2, 2018. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
duplicity_restore.service.m4
52 lines (45 loc) · 1.85 KB
/
duplicity_restore.service.m4
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
changequote({{,}})dnl
define(DOCKER_NAME, duplicity)dnl
define(DOCKER_IMAGE, cloudposse/library:duplicity)dnl
define(DOCKER_STOP_TIMEOUT, 20)dnl
define(DOCKER_VOLUME, /tmp/test)dnl
define(DOCKER_MEMORY, 2g)dnl
define(DOCKER_CPU_SHARES, 50)dnl
define(AWS_ACCESS_KEY_ID, aws-access-key-id)dnl
define(AWS_SECRET_ACCESS_KEY, aws-secret-access-key)dnl
define(BACKUP_PATH, /var/www/html)dnl
define(BACKUP_TARGET, s3://s3.amazonaws.com/<bucket_name>/backup)dnl
define(BACKUP_RESTORE_POINT, 1D)dnl
[Unit]
Description=Backup DOCKER_VOLUME to BACKUP_TARGET
Requires=docker.service
After=docker.service
Requires=flanneld.service
After=flanneld.service
Requires=BACKUP_MACHINE_NAME
After=BACKUP_MACHINE_NAME
[Service]
User=core
Type=oneshot
RemainAfterExit=no
EnvironmentFile=/etc/environment
EnvironmentFile=/etc/env.d/*
TimeoutStartSec=0
ExecStartPre=-/usr/bin/docker stop --time=DOCKER_STOP_TIMEOUT DOCKER_NAME
ExecStartPre=-/usr/bin/docker rm DOCKER_NAME
ExecStartPre=-/usr/bin/docker --debug=true pull DOCKER_IMAGE
ExecStart=/usr/bin/docker run \
--name=DOCKER_NAME \
--rm \
ifelse(DOCKER_MEMORY, {{}}, {{}}, --memory={{DOCKER_MEMORY}}) \
ifelse(DOCKER_CPU_SHARES, {{}}, {{}}, --cpu-shares={{DOCKER_CPU_SHARES}}) \
-e '{{AWS_ACCESS_KEY_ID}}=AWS_ACCESS_KEY_ID' \
-e '{{AWS_SECRET_ACCESS_KEY}}=AWS_SECRET_ACCESS_KEY' \
--volume DOCKER_VOLUME \
DOCKER_IMAGE \
-v 8 -t BACKUP_RESTORE_POINT --s3-use-new-style --no-encryption --force BACKUP_TARGET BACKUP_PATH
ExecStop=-/usr/bin/docker stop --time=DOCKER_STOP_TIMEOUT DOCKER_NAME
ExecStopPost=-/usr/bin/docker rm DOCKER_NAME
TimeoutStopSec=DOCKER_STOP_TIMEOUT{{s}}
[Install]
WantedBy=multi-user.target