-
Notifications
You must be signed in to change notification settings - Fork 5
Expand file tree
/
Copy pathdocker-updater
More file actions
executable file
·88 lines (69 loc) · 2.25 KB
/
docker-updater
File metadata and controls
executable file
·88 lines (69 loc) · 2.25 KB
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
#!/bin/bash
#
# Copyright 2016-2017 Martin Scharm
#
# This file is part of bf-docker-tools.
# <https://github.com/binfalse/docker-tools>
# <https://binfalse.de/2016/12/03/handy-docker-tools/>
# <https://binfalse.de/2017/01/24/automatically-update-docker-images/>
# <https://github.com/binfalse/docker-auto-update>
#
# bf-docker-tools is free software: you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the Free
# Software Foundation, either version 3 of the License, or (at your option) any
# later version.
#
# bf-docker-tools is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along with
# bf-docker-tools. If not, see <http://www.gnu.org/licenses/>.
# The following setup can be modified in
# /etc/default/docker-updater
# do not modify this file.
# set to 1 to get some debugging output
DEBUG=0
# wouldn't update anything unless this is set to 1
ENABLED=0
# list of docker-compose configs
DCOMPOSE=/etc/docker-compose-auto-update.conf
# read configuration from settings file
[ -e "/etc/default/docker-updater" ] && source "/etc/default/docker-updater"
# check if updates are enabled
[ "$ENABLED" -eq 1 ] || exit 0
# update all docker images
if [ "$DEBUG" -eq 1 ]
then
/usr/local/bin/dupdate
else
/usr/local/bin/dupdate -s
fi
# update all docker compose scripts
if [ -e "$DCOMPOSE" ]
then
cat "$DCOMPOSE" | /bin/grep -v '^#' | \
while read conf
do
if [ -e "$conf" ]
then
# docker-compose has problems with absolute paths...
# so we need to change into the directory
dir=$(dirname "$conf")
compfile=$(basename "$conf")
cd "$dir"
# do the updating part
if [ "$DEBUG" -eq 1 ]
then
echo "updating docker compose in "
docker-compose -f "$compfile" up -d --remove-orphans 2>&1
else
docker-compose -f "$compfile" up -d --remove-orphans 2>&1 | /bin/grep -v up-to-date
fi
else
# uhm.. that compose file doesn't exist?
# we should tell the admin..
echo "docker compose file $conf does not exist..."
fi
done
fi