annotate docker/libervia_cont.sh @ 90:64623a78af2f

docker (libervia_cont): backup dir can now be specified on command line or with SAT_CONT_BACKUP_DIR environment variable
author Goffi <goffi@goffi.org>
date Fri, 19 Feb 2016 14:14:19 +0100
parents 09099ce530da
children 30f3f83d6959
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
21
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
1 #!/bin/sh
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
2
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
3 # Libervia container manager
86
f5067e3112ba docker (libervia_cont): new commands:
Goffi <goffi@goffi.org>
parents: 28
diff changeset
4 # Copyright (C) 2014-2016 Jérôme Poisson (goffi@goffi.org)
21
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
5
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
6 # This program is free software: you can redistribute it and/or modify
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
7 # it under the terms of the GNU Affero General Public License as published by
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
8 # the Free Software Foundation, either version 3 of the License, or
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
9 # (at your option) any later version.
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
10
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
11 # This program is distributed in the hope that it will be useful,
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
12 # but WITHOUT ANY WARRANTY; without even the implied warranty of
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
13 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
14 # GNU Affero General Public License for more details.
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
15
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
16 # You should have received a copy of the GNU Affero General Public License
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
17 # along with this program. If not, see <http://www.gnu.org/licenses/>.
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
18
86
f5067e3112ba docker (libervia_cont): new commands:
Goffi <goffi@goffi.org>
parents: 28
diff changeset
19 VERSION="0.3.0"
21
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
20 ACCOUNT="salutatoi"
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
21
88
f7d275afc4f2 docker (libervia_cont): TLS dir (directory with certificate) can now be specified with env variable "SAT_CONT_TLS_DIR"
Goffi <goffi@goffi.org>
parents: 87
diff changeset
22 # environment variables that can be used for configuration:
f7d275afc4f2 docker (libervia_cont): TLS dir (directory with certificate) can now be specified with env variable "SAT_CONT_TLS_DIR"
Goffi <goffi@goffi.org>
parents: 87
diff changeset
23 # SAT_CONT_TLS_DIR for TLS certificates directory
89
09099ce530da docker (libervia_cont): domain can now be specified with "SAT_CONT_DOMAIN" env variable in addition to command line argument + use https for help site (wiki)
Goffi <goffi@goffi.org>
parents: 88
diff changeset
24 # SAT_CONT_DOMAIN for the host name
90
64623a78af2f docker (libervia_cont): backup dir can now be specified on command line or with SAT_CONT_BACKUP_DIR environment variable
Goffi <goffi@goffi.org>
parents: 89
diff changeset
25 # SAT_CONT_BACKUP_DIR is the directory where tar.gz backup will be written
88
f7d275afc4f2 docker (libervia_cont): TLS dir (directory with certificate) can now be specified with env variable "SAT_CONT_TLS_DIR"
Goffi <goffi@goffi.org>
parents: 87
diff changeset
26
21
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
27 CONTAINERS="prosody sat_pubsub salut sat libervia"
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
28
86
f5067e3112ba docker (libervia_cont): new commands:
Goffi <goffi@goffi.org>
parents: 28
diff changeset
29 DK_DETACH="-d"
f5067e3112ba docker (libervia_cont): new commands:
Goffi <goffi@goffi.org>
parents: 28
diff changeset
30 DK_TERM="-ti"
21
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
31
24
f0a59c8f3490 docker: added docker presence check + if image are not present locally on run, download them without catching the output (so we can se the progress)
Goffi <goffi@goffi.org>
parents: 23
diff changeset
32 VOLUME_NAME="data"
f0a59c8f3490 docker: added docker presence check + if image are not present locally on run, download them without catching the output (so we can se the progress)
Goffi <goffi@goffi.org>
parents: 23
diff changeset
33 VOLUME_CONT="$ACCOUNT/$VOLUME_NAME"
21
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
34 VOLUME_ALIAS="sat_data"
86
f5067e3112ba docker (libervia_cont): new commands:
Goffi <goffi@goffi.org>
parents: 28
diff changeset
35 DK_VOLUME="--volumes-from $VOLUME_ALIAS"
21
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
36
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
37 PUBLIC=0
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
38
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
39 PROSODY_PORTS="5222 5269"
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
40 PORT_5222_NAME="XMPP client to server"
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
41 PORT_5269_NAME="XMPP server to server"
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
42 SAT_PORTS="10143 10125 28915"
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
43 PORT_10143_NAME="IMAP server"
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
44 PORT_10125_NAME="SMTP server"
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
45 PORT_28915_NAME="XMPP file transfer"
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
46 LIBERVIA_PORTS="8080 8443"
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
47 PORT_8080_NAME="HTTP"
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
48 PORT_8443_NAME="HTTPS"
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
49 NO_PORT="No public port"
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
50
24
f0a59c8f3490 docker: added docker presence check + if image are not present locally on run, download them without catching the output (so we can se the progress)
Goffi <goffi@goffi.org>
parents: 23
diff changeset
51 DOCKER_EXE="docker"
f0a59c8f3490 docker: added docker presence check + if image are not present locally on run, download them without catching the output (so we can se the progress)
Goffi <goffi@goffi.org>
parents: 23
diff changeset
52
87
53a579906c32 docker(libervia_cont): added a "restore" command
Goffi <goffi@goffi.org>
parents: 86
diff changeset
53 USAGE="Usage: $0 [start|stop|restart|update|backup|restore|ports|config] [ARGS...]"
21
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
54
89
09099ce530da docker (libervia_cont): domain can now be specified with "SAT_CONT_DOMAIN" env variable in addition to command line argument + use https for help site (wiki)
Goffi <goffi@goffi.org>
parents: 88
diff changeset
55 HELP_SITE="https://wiki.goffi.org/wiki/Docker/en"
21
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
56 HELP_MUC="sat@chat.jabberfr.org"
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
57
88
f7d275afc4f2 docker (libervia_cont): TLS dir (directory with certificate) can now be specified with env variable "SAT_CONT_TLS_DIR"
Goffi <goffi@goffi.org>
parents: 87
diff changeset
58 CONT_CERT_DIR="/usr/share/sat/certificates"
86
f5067e3112ba docker (libervia_cont): new commands:
Goffi <goffi@goffi.org>
parents: 28
diff changeset
59 DEFAULT_TMP_DIR="/tmp/tmp_sat_docker"
f5067e3112ba docker (libervia_cont): new commands:
Goffi <goffi@goffi.org>
parents: 28
diff changeset
60
21
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
61 get_dyn_var() {
26
a5e4c6c2a37d docker: replaces tabs by spaces, download first app containers then data container + minor changes
Goffi <goffi@goffi.org>
parents: 25
diff changeset
62 # get dynamicly variable based on given name
21
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
63
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
64 name=$1
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
65 var_type=$2
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
66 name_upp=$(echo "$name" | tr '[:lower:]' '[:upper:]')
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
67 case $var_type in
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
68 ports) eval echo $(echo "\$${name_upp}_PORTS");;
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
69 port_name) eval echo $(echo "\$PORT_${name_upp}_NAME");;
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
70 esac
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
71 }
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
72
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
73 list_ports() {
26
a5e4c6c2a37d docker: replaces tabs by spaces, download first app containers then data container + minor changes
Goffi <goffi@goffi.org>
parents: 25
diff changeset
74 # list used ports in currently running containers
21
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
75
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
76 for cont in $CONTAINERS; do
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
77 # we get variable name with uppercase container name
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
78 # some magic to get the ports
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
79 ports=$(get_dyn_var $cont ports)
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
80
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
81 [ -n "$ports" ] && printf "== $cont ==\n\n"
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
82
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
83 for port in $ports; do
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
84 # some magic to get port human readable name
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
85 port_name=$(get_dyn_var $port port_name)
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
86 real_port=$(docker port $cont $port 2>&1)
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
87 if [ $? -ne 0 ]; then
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
88 real_port=$NO_PORT
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
89 fi
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
90
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
91 # we now show the ports with nice alignment
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
92 desc="port $port ($port_name):"
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
93 nb_tabs=$((5-${#desc}/8))
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
94 printf "$desc"
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
95 for i in $(seq $nb_tabs); do
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
96 printf "\t"
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
97 done
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
98 printf "$real_port\n"
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
99 done
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
100 [ -n "$ports" ] && printf '\n'
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
101 done
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
102 }
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
103
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
104 public_ports_arg() {
26
a5e4c6c2a37d docker: replaces tabs by spaces, download first app containers then data container + minor changes
Goffi <goffi@goffi.org>
parents: 25
diff changeset
105 # create Docker arg to have public ports corresponding to container ports
21
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
106
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
107 if [ $PUBLIC -ne 1 ]; then
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
108 return
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
109 fi
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
110 cont=$1
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
111 ports=$(get_dyn_var $cont ports)
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
112 ARG=""
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
113 for port in $ports; do
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
114 ARG="$ARG -p $port:$port"
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
115 done
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
116 echo $ARG
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
117 }
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
118
24
f0a59c8f3490 docker: added docker presence check + if image are not present locally on run, download them without catching the output (so we can se the progress)
Goffi <goffi@goffi.org>
parents: 23
diff changeset
119 download_missing() {
26
a5e4c6c2a37d docker: replaces tabs by spaces, download first app containers then data container + minor changes
Goffi <goffi@goffi.org>
parents: 25
diff changeset
120 # download images wich are not present locally
a5e4c6c2a37d docker: replaces tabs by spaces, download first app containers then data container + minor changes
Goffi <goffi@goffi.org>
parents: 25
diff changeset
121 for cont in $CONTAINERS $VOLUME_NAME; do
a5e4c6c2a37d docker: replaces tabs by spaces, download first app containers then data container + minor changes
Goffi <goffi@goffi.org>
parents: 25
diff changeset
122 image="$ACCOUNT/$cont"
a5e4c6c2a37d docker: replaces tabs by spaces, download first app containers then data container + minor changes
Goffi <goffi@goffi.org>
parents: 25
diff changeset
123 docker inspect $image:latest > /dev/null 2>&1
a5e4c6c2a37d docker: replaces tabs by spaces, download first app containers then data container + minor changes
Goffi <goffi@goffi.org>
parents: 25
diff changeset
124 if [ $? -ne 0 ]; then
a5e4c6c2a37d docker: replaces tabs by spaces, download first app containers then data container + minor changes
Goffi <goffi@goffi.org>
parents: 25
diff changeset
125 printf "$image is not present locally, downloading it\n"
a5e4c6c2a37d docker: replaces tabs by spaces, download first app containers then data container + minor changes
Goffi <goffi@goffi.org>
parents: 25
diff changeset
126 docker pull $image:latest
a5e4c6c2a37d docker: replaces tabs by spaces, download first app containers then data container + minor changes
Goffi <goffi@goffi.org>
parents: 25
diff changeset
127 if [ $? -eq 0 ]; then
a5e4c6c2a37d docker: replaces tabs by spaces, download first app containers then data container + minor changes
Goffi <goffi@goffi.org>
parents: 25
diff changeset
128 printf "\nDownload of latest $image finished\n\n"
a5e4c6c2a37d docker: replaces tabs by spaces, download first app containers then data container + minor changes
Goffi <goffi@goffi.org>
parents: 25
diff changeset
129 else
a5e4c6c2a37d docker: replaces tabs by spaces, download first app containers then data container + minor changes
Goffi <goffi@goffi.org>
parents: 25
diff changeset
130 printf "\nError while downloading $image, please check your connection and logs\n"
a5e4c6c2a37d docker: replaces tabs by spaces, download first app containers then data container + minor changes
Goffi <goffi@goffi.org>
parents: 25
diff changeset
131 return 1
a5e4c6c2a37d docker: replaces tabs by spaces, download first app containers then data container + minor changes
Goffi <goffi@goffi.org>
parents: 25
diff changeset
132 fi
a5e4c6c2a37d docker: replaces tabs by spaces, download first app containers then data container + minor changes
Goffi <goffi@goffi.org>
parents: 25
diff changeset
133 fi
a5e4c6c2a37d docker: replaces tabs by spaces, download first app containers then data container + minor changes
Goffi <goffi@goffi.org>
parents: 25
diff changeset
134 done
24
f0a59c8f3490 docker: added docker presence check + if image are not present locally on run, download them without catching the output (so we can se the progress)
Goffi <goffi@goffi.org>
parents: 23
diff changeset
135 }
f0a59c8f3490 docker: added docker presence check + if image are not present locally on run, download them without catching the output (so we can se the progress)
Goffi <goffi@goffi.org>
parents: 23
diff changeset
136
f0a59c8f3490 docker: added docker presence check + if image are not present locally on run, download them without catching the output (so we can se the progress)
Goffi <goffi@goffi.org>
parents: 23
diff changeset
137 check_docker() {
26
a5e4c6c2a37d docker: replaces tabs by spaces, download first app containers then data container + minor changes
Goffi <goffi@goffi.org>
parents: 25
diff changeset
138 which $DOCKER_EXE > /dev/null 2>&1
a5e4c6c2a37d docker: replaces tabs by spaces, download first app containers then data container + minor changes
Goffi <goffi@goffi.org>
parents: 25
diff changeset
139 if [ $? -ne 0 ]; then
86
f5067e3112ba docker (libervia_cont): new commands:
Goffi <goffi@goffi.org>
parents: 28
diff changeset
140 printf "Docker is not installed or not accessible, please install it.\nYou can check $HELP_SITE for instructions\n"
26
a5e4c6c2a37d docker: replaces tabs by spaces, download first app containers then data container + minor changes
Goffi <goffi@goffi.org>
parents: 25
diff changeset
141 return 1
a5e4c6c2a37d docker: replaces tabs by spaces, download first app containers then data container + minor changes
Goffi <goffi@goffi.org>
parents: 25
diff changeset
142 fi
24
f0a59c8f3490 docker: added docker presence check + if image are not present locally on run, download them without catching the output (so we can se the progress)
Goffi <goffi@goffi.org>
parents: 23
diff changeset
143 }
f0a59c8f3490 docker: added docker presence check + if image are not present locally on run, download them without catching the output (so we can se the progress)
Goffi <goffi@goffi.org>
parents: 23
diff changeset
144
21
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
145 parse_run_args() {
26
a5e4c6c2a37d docker: replaces tabs by spaces, download first app containers then data container + minor changes
Goffi <goffi@goffi.org>
parents: 25
diff changeset
146 # manage arguments for run command
21
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
147
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
148 while [ $# -gt 0 ]; do
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
149 case "$1" in
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
150
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
151 -h|--help)
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
152 cat << OPT_END
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
153 options available for the run command:
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
154
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
155 -h, --help display this help message
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
156 -p, --public publish using true ports
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
157 -d DOMAIN, --domain DOMAIN use DOMAIN as domain name
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
158 OPT_END
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
159 exit 0
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
160 ;;
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
161
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
162 -d|--domain)
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
163 shift
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
164 if [ $# -eq 0 ]; then
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
165 printf "no domain given, --domain must be followed by a domain\n"
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
166 exit 1
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
167 fi
89
09099ce530da docker (libervia_cont): domain can now be specified with "SAT_CONT_DOMAIN" env variable in addition to command line argument + use https for help site (wiki)
Goffi <goffi@goffi.org>
parents: 88
diff changeset
168 SAT_CONT_DOMAIN="$1"
21
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
169 shift
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
170 ;;
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
171
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
172 -p|--public)
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
173 shift
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
174 PUBLIC=1
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
175 ;;
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
176
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
177 *) printf "Invalid argument, please check \"$0 run --help\"\n"
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
178 exit 1
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
179 ;;
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
180 esac
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
181 done
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
182 }
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
183
24
f0a59c8f3490 docker: added docker presence check + if image are not present locally on run, download them without catching the output (so we can se the progress)
Goffi <goffi@goffi.org>
parents: 23
diff changeset
184 check_docker || exit 1
21
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
185
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
186 if [ $# -ge 1 ];then
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
187 case $1 in
86
f5067e3112ba docker (libervia_cont): new commands:
Goffi <goffi@goffi.org>
parents: 28
diff changeset
188 start) CMD=START;;
21
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
189 stop) CMD=STOP;;
86
f5067e3112ba docker (libervia_cont): new commands:
Goffi <goffi@goffi.org>
parents: 28
diff changeset
190 restart) CMD=RESTART;;
21
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
191 update) CMD=UPDATE;;
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
192 backup) CMD=BACKUP;;
87
53a579906c32 docker(libervia_cont): added a "restore" command
Goffi <goffi@goffi.org>
parents: 86
diff changeset
193 restore) CMD=RESTORE;;
21
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
194 ports) CMD=PORTS;;
86
f5067e3112ba docker (libervia_cont): new commands:
Goffi <goffi@goffi.org>
parents: 28
diff changeset
195 config) CMD=CONFIG;;
26
a5e4c6c2a37d docker: replaces tabs by spaces, download first app containers then data container + minor changes
Goffi <goffi@goffi.org>
parents: 25
diff changeset
196 -v|--version) printf "$VERSION\n"; exit 0;;
a5e4c6c2a37d docker: replaces tabs by spaces, download first app containers then data container + minor changes
Goffi <goffi@goffi.org>
parents: 25
diff changeset
197 -h|--help) printf "$USAGE\n\nYou can check $HELP_SITE for instructions, or go to $HELP_MUC XMPP MUC room for help\n"; exit 0;;
21
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
198 *) echo $USAGE
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
199 exit 1
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
200 esac
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
201 shift
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
202 else
86
f5067e3112ba docker (libervia_cont): new commands:
Goffi <goffi@goffi.org>
parents: 28
diff changeset
203 CMD=START
21
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
204 fi
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
205
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
206 case $CMD in
86
f5067e3112ba docker (libervia_cont): new commands:
Goffi <goffi@goffi.org>
parents: 28
diff changeset
207 START)
21
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
208 parse_run_args "$@"
24
f0a59c8f3490 docker: added docker presence check + if image are not present locally on run, download them without catching the output (so we can se the progress)
Goffi <goffi@goffi.org>
parents: 23
diff changeset
209 download_missing || exit 1
f0a59c8f3490 docker: added docker presence check + if image are not present locally on run, download them without catching the output (so we can se the progress)
Goffi <goffi@goffi.org>
parents: 23
diff changeset
210
21
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
211 printf "Running data container... "
89
09099ce530da docker (libervia_cont): domain can now be specified with "SAT_CONT_DOMAIN" env variable in addition to command line argument + use https for help site (wiki)
Goffi <goffi@goffi.org>
parents: 88
diff changeset
212 # we use -d even if data container doesn't stay in background to get id of the container
09099ce530da docker (libervia_cont): domain can now be specified with "SAT_CONT_DOMAIN" env variable in addition to command line argument + use https for help site (wiki)
Goffi <goffi@goffi.org>
parents: 88
diff changeset
213 docker_id=$(docker run -d --name $VOLUME_ALIAS $VOLUME_CONT 2>&1)
21
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
214 if [ $? -eq 0 ]; then
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
215 printf "OK ($docker_id)\n"
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
216 else
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
217 echo $docker_id | grep Conflict > /dev/null 2>&1
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
218 if [ $? -eq 0 ]; then
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
219 printf "A data container already exists ($VOLUME_ALIAS), use \"docker ps -a\" to see it\n"
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
220 else
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
221 printf "Error, please check data volume\nerror message: $docker_id\n"
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
222 exit 1
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
223 fi
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
224 fi
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
225 printf "\nRunning Libervia\n\n"
88
f7d275afc4f2 docker (libervia_cont): TLS dir (directory with certificate) can now be specified with env variable "SAT_CONT_TLS_DIR"
Goffi <goffi@goffi.org>
parents: 87
diff changeset
226 # we first check if we need to mount TLS directory
f7d275afc4f2 docker (libervia_cont): TLS dir (directory with certificate) can now be specified with env variable "SAT_CONT_TLS_DIR"
Goffi <goffi@goffi.org>
parents: 87
diff changeset
227 if [ -n "$SAT_CONT_TLS_DIR" ]; then
f7d275afc4f2 docker (libervia_cont): TLS dir (directory with certificate) can now be specified with env variable "SAT_CONT_TLS_DIR"
Goffi <goffi@goffi.org>
parents: 87
diff changeset
228 printf "$SAT_CONT_TLS_DIR will be used for TLS certificate\n"
f7d275afc4f2 docker (libervia_cont): TLS dir (directory with certificate) can now be specified with env variable "SAT_CONT_TLS_DIR"
Goffi <goffi@goffi.org>
parents: 87
diff changeset
229 DK_TLS="--volume=$SAT_CONT_TLS_DIR:$CONT_CERT_DIR"
f7d275afc4f2 docker (libervia_cont): TLS dir (directory with certificate) can now be specified with env variable "SAT_CONT_TLS_DIR"
Goffi <goffi@goffi.org>
parents: 87
diff changeset
230 fi
21
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
231 for CONT in $CONTAINERS; do
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
232 case $CONT in
88
f7d275afc4f2 docker (libervia_cont): TLS dir (directory with certificate) can now be specified with env variable "SAT_CONT_TLS_DIR"
Goffi <goffi@goffi.org>
parents: 87
diff changeset
233 prosody) OPTS="$DK_DETACH $DK_TERM $DK_VOLUME $DK_TLS $(public_ports_arg $CONT) --name prosody"
89
09099ce530da docker (libervia_cont): domain can now be specified with "SAT_CONT_DOMAIN" env variable in addition to command line argument + use https for help site (wiki)
Goffi <goffi@goffi.org>
parents: 88
diff changeset
234 if [ -n "$SAT_CONT_DOMAIN" ]; then
09099ce530da docker (libervia_cont): domain can now be specified with "SAT_CONT_DOMAIN" env variable in addition to command line argument + use https for help site (wiki)
Goffi <goffi@goffi.org>
parents: 88
diff changeset
235 OPTS="-e DOMAIN=$SAT_CONT_DOMAIN $OPTS"
21
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
236 fi
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
237 ;;
86
f5067e3112ba docker (libervia_cont): new commands:
Goffi <goffi@goffi.org>
parents: 28
diff changeset
238 sat_pubsub) OPTS="$DK_DETACH $DK_TERM $DK_VOLUME --name sat_pubsub --link=prosody:prosody";;
f5067e3112ba docker (libervia_cont): new commands:
Goffi <goffi@goffi.org>
parents: 28
diff changeset
239 salut) OPTS="$DK_DETACH $DK_TERM $DK_VOLUME --name salut --link=prosody:prosody";;
f5067e3112ba docker (libervia_cont): new commands:
Goffi <goffi@goffi.org>
parents: 28
diff changeset
240 sat) OPTS="$DK_DETACH $DK_TERM $DK_VOLUME -P $(public_ports_arg $CONT) --name sat --link=prosody:prosody";;
88
f7d275afc4f2 docker (libervia_cont): TLS dir (directory with certificate) can now be specified with env variable "SAT_CONT_TLS_DIR"
Goffi <goffi@goffi.org>
parents: 87
diff changeset
241 libervia) OPTS="$DK_DETACH $DK_TERM $DK_VOLUME --volumes-from sat $DK_TLS -P $(public_ports_arg $CONT) --name libervia --link=sat:sat";;
21
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
242 *) printf "Unkown container $CONT\n"; exit 1
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
243 esac
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
244 printf "Launching $CONT... "
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
245 docker_id=$(docker run $OPTS $ACCOUNT/$CONT 2>&1)
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
246 if [ $? -eq 0 ]; then
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
247 printf "OK ($docker_id)\n"
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
248 else
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
249 printf "Error, please check container or ask help on XMPP MUC sat@chat.jabberfr.org\nerror message: $docker_id\n"
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
250 printf "Abandon\n"
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
251 exit 1
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
252 fi
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
253 done
26
a5e4c6c2a37d docker: replaces tabs by spaces, download first app containers then data container + minor changes
Goffi <goffi@goffi.org>
parents: 25
diff changeset
254 printf '\nLibervia is launched and should be reachable in a couple of seconds.\nYou can check logs with "docker logs libervia" (or any other container name).\n'
a5e4c6c2a37d docker: replaces tabs by spaces, download first app containers then data container + minor changes
Goffi <goffi@goffi.org>
parents: 25
diff changeset
255 printf "An \"admin\" account has been created, you can check its password on $VOLUME_ALIAS container, in file /home/sat/ADMIN_PWD. Config can be tuned on this container.\n"
a5e4c6c2a37d docker: replaces tabs by spaces, download first app containers then data container + minor changes
Goffi <goffi@goffi.org>
parents: 25
diff changeset
256 printf 'Below are the ports used to connect, you can go with your browser to Libervia HTTP port.\n\n'
21
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
257 list_ports
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
258 ;;
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
259 STOP)
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
260 printf "stopping Libervia\n"
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
261 REVERSED=""
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
262 for CONT in $CONTAINERS; do
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
263 REVERSED="$CONT $REVERSED"
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
264 done;
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
265 for CONT in $REVERSED; do
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
266 printf "\nStopping container $CONT"
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
267 docker stop $CONT > /dev/null 2>&1 || printf "... Error while stopping $CONT\n"
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
268 printf "\rDeleting container $CONT"
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
269 docker rm $CONT > /dev/null 2>&1 || printf "... Error while removing $CONT\n"
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
270 done
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
271 printf "\n"
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
272 ;;
87
53a579906c32 docker(libervia_cont): added a "restore" command
Goffi <goffi@goffi.org>
parents: 86
diff changeset
273 RESTART)
53a579906c32 docker(libervia_cont): added a "restore" command
Goffi <goffi@goffi.org>
parents: 86
diff changeset
274 printf "restarting containers...\n"
53a579906c32 docker(libervia_cont): added a "restore" command
Goffi <goffi@goffi.org>
parents: 86
diff changeset
275 "$0" stop && "$0" start "$@"
53a579906c32 docker(libervia_cont): added a "restore" command
Goffi <goffi@goffi.org>
parents: 86
diff changeset
276 ;;
21
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
277 UPDATE)
28
9ca1e7fe0f87 Docker: we update images, not containers
Goffi <goffi@goffi.org>
parents: 26
diff changeset
278 printf "updating images...\n"
21
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
279 errors=0
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
280 for CONT in $CONTAINERS data; do
25
25b7452c2d5a docker: "docker pull" result is not hidden anymore in libervia_cons.sh update, so download progress can be followed
Goffi <goffi@goffi.org>
parents: 24
diff changeset
281 printf "\n*** updating $CONT ***\n"
25b7452c2d5a docker: "docker pull" result is not hidden anymore in libervia_cons.sh update, so download progress can be followed
Goffi <goffi@goffi.org>
parents: 24
diff changeset
282 docker pull $ACCOUNT/$CONT:latest
21
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
283 if [ $? -ne 0 ]; then
25
25b7452c2d5a docker: "docker pull" result is not hidden anymore in libervia_cons.sh update, so download progress can be followed
Goffi <goffi@goffi.org>
parents: 24
diff changeset
284 printf "\nError while updating $ACCOUNT/$CONT\n"
21
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
285 errors=1
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
286 fi
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
287 done
23
b10f01885949 docker: fixed libervia_cont update + added some newlines
Goffi <goffi@goffi.org>
parents: 22
diff changeset
288 if [ $errors -eq 0 ]; then
28
9ca1e7fe0f87 Docker: we update images, not containers
Goffi <goffi@goffi.org>
parents: 26
diff changeset
289 printf "\n\nImages are up-to-date\n"
21
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
290 else
28
9ca1e7fe0f87 Docker: we update images, not containers
Goffi <goffi@goffi.org>
parents: 26
diff changeset
291 printf "\n\nSome errors happened while updating images\n"
21
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
292 exit 1
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
293 fi
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
294 ;;
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
295 BACKUP)
90
64623a78af2f docker (libervia_cont): backup dir can now be specified on command line or with SAT_CONT_BACKUP_DIR environment variable
Goffi <goffi@goffi.org>
parents: 89
diff changeset
296 case $# in
64623a78af2f docker (libervia_cont): backup dir can now be specified on command line or with SAT_CONT_BACKUP_DIR environment variable
Goffi <goffi@goffi.org>
parents: 89
diff changeset
297 0) SAT_CONT_BACKUP_DIR="$(pwd)";;
64623a78af2f docker (libervia_cont): backup dir can now be specified on command line or with SAT_CONT_BACKUP_DIR environment variable
Goffi <goffi@goffi.org>
parents: 89
diff changeset
298 1) SAT_CONT_BACKUP_DIR="$1";;
64623a78af2f docker (libervia_cont): backup dir can now be specified on command line or with SAT_CONT_BACKUP_DIR environment variable
Goffi <goffi@goffi.org>
parents: 89
diff changeset
299 *) printf "syntaxe is $0 backup [backup_dir_absolute_path]\n[backup_dir_absolute_path] default to current working dir\n"
64623a78af2f docker (libervia_cont): backup dir can now be specified on command line or with SAT_CONT_BACKUP_DIR environment variable
Goffi <goffi@goffi.org>
parents: 89
diff changeset
300 exit 1
64623a78af2f docker (libervia_cont): backup dir can now be specified on command line or with SAT_CONT_BACKUP_DIR environment variable
Goffi <goffi@goffi.org>
parents: 89
diff changeset
301 ;;
64623a78af2f docker (libervia_cont): backup dir can now be specified on command line or with SAT_CONT_BACKUP_DIR environment variable
Goffi <goffi@goffi.org>
parents: 89
diff changeset
302 esac
64623a78af2f docker (libervia_cont): backup dir can now be specified on command line or with SAT_CONT_BACKUP_DIR environment variable
Goffi <goffi@goffi.org>
parents: 89
diff changeset
303 SAT_CONT_BACKUP_DIR=$(echo $SAT_CONT_BACKUP_DIR | sed 's%^\/*\|\/*$%\/%g') # we want to be sure that path starts and finishes with "/"
21
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
304 filename="sat_data_backup_$(date '+%Y-%m-%d_%H:%M:%S').tar.gz"
90
64623a78af2f docker (libervia_cont): backup dir can now be specified on command line or with SAT_CONT_BACKUP_DIR environment variable
Goffi <goffi@goffi.org>
parents: 89
diff changeset
305 printf "backing up data container to ${SAT_CONT_BACKUP_DIR}${filename}\n\n"
64623a78af2f docker (libervia_cont): backup dir can now be specified on command line or with SAT_CONT_BACKUP_DIR environment variable
Goffi <goffi@goffi.org>
parents: 89
diff changeset
306 docker run --rm $DK_VOLUME -v "$SAT_CONT_BACKUP_DIR:/backup" debian:jessie tar zcvf "/backup/$filename" -C / -h volumes
21
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
307 if [ $? -eq 0 ]; then
90
64623a78af2f docker (libervia_cont): backup dir can now be specified on command line or with SAT_CONT_BACKUP_DIR environment variable
Goffi <goffi@goffi.org>
parents: 89
diff changeset
308 printf "\nBackup finished and available at ${SAT_CONT_BACKUP_DIR}${filename}\n"
21
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
309 else
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
310 printf "\nBackup Error !\n"
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
311 exit 1
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
312 fi
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
313 ;;
87
53a579906c32 docker(libervia_cont): added a "restore" command
Goffi <goffi@goffi.org>
parents: 86
diff changeset
314 RESTORE)
53a579906c32 docker(libervia_cont): added a "restore" command
Goffi <goffi@goffi.org>
parents: 86
diff changeset
315 if [ $# -ne 1 ]; then
90
64623a78af2f docker (libervia_cont): backup dir can now be specified on command line or with SAT_CONT_BACKUP_DIR environment variable
Goffi <goffi@goffi.org>
parents: 89
diff changeset
316 printf "syntaxe is $0 restore <backup_file.tar.gz>\n"
87
53a579906c32 docker(libervia_cont): added a "restore" command
Goffi <goffi@goffi.org>
parents: 86
diff changeset
317 exit 1
53a579906c32 docker(libervia_cont): added a "restore" command
Goffi <goffi@goffi.org>
parents: 86
diff changeset
318 fi
53a579906c32 docker(libervia_cont): added a "restore" command
Goffi <goffi@goffi.org>
parents: 86
diff changeset
319 docker run --name $VOLUME_ALIAS $VOLUME_CONT > /dev/null 2>&1
53a579906c32 docker(libervia_cont): added a "restore" command
Goffi <goffi@goffi.org>
parents: 86
diff changeset
320 if [ $? -ne 0 ]; then
53a579906c32 docker(libervia_cont): added a "restore" command
Goffi <goffi@goffi.org>
parents: 86
diff changeset
321 printf "Can't create $VOLUME_ALIAS container.\n\
53a579906c32 docker(libervia_cont): added a "restore" command
Goffi <goffi@goffi.org>
parents: 86
diff changeset
322 If you have an existing one, please remove it with \"docker rm $VOLUME_ALIAS\" (/!\\ it will remove *ALL* your data)\n\n\
53a579906c32 docker(libervia_cont): added a "restore" command
Goffi <goffi@goffi.org>
parents: 86
diff changeset
323 Hint: you can commit your container to avoid risk with \"docker commit $VOLUME_ALIAS your_committed_image_name\"\n\
53a579906c32 docker(libervia_cont): added a "restore" command
Goffi <goffi@goffi.org>
parents: 86
diff changeset
324 you can also rename your current data container with \"docker rename $VOLUME_ALIAS new_container_name\"\n"
53a579906c32 docker(libervia_cont): added a "restore" command
Goffi <goffi@goffi.org>
parents: 86
diff changeset
325 exit 1
53a579906c32 docker(libervia_cont): added a "restore" command
Goffi <goffi@goffi.org>
parents: 86
diff changeset
326 fi
53a579906c32 docker(libervia_cont): added a "restore" command
Goffi <goffi@goffi.org>
parents: 86
diff changeset
327
53a579906c32 docker(libervia_cont): added a "restore" command
Goffi <goffi@goffi.org>
parents: 86
diff changeset
328 printf "restoring $1 to $VOLUME_ALIAS container\n\n"
53a579906c32 docker(libervia_cont): added a "restore" command
Goffi <goffi@goffi.org>
parents: 86
diff changeset
329 HOST_BACKUP_DIR="$(dirname "$1")"
53a579906c32 docker(libervia_cont): added a "restore" command
Goffi <goffi@goffi.org>
parents: 86
diff changeset
330 if [ $HOST_BACKUP_DIR = "." ]; then
88
f7d275afc4f2 docker (libervia_cont): TLS dir (directory with certificate) can now be specified with env variable "SAT_CONT_TLS_DIR"
Goffi <goffi@goffi.org>
parents: 87
diff changeset
331 # workaround for a Docker bug (container crash if "." is used)
87
53a579906c32 docker(libervia_cont): added a "restore" command
Goffi <goffi@goffi.org>
parents: 86
diff changeset
332 HOST_BACKUP_DIR=$(pwd)
53a579906c32 docker(libervia_cont): added a "restore" command
Goffi <goffi@goffi.org>
parents: 86
diff changeset
333 fi
53a579906c32 docker(libervia_cont): added a "restore" command
Goffi <goffi@goffi.org>
parents: 86
diff changeset
334 docker run --rm $DK_VOLUME -v "$HOST_BACKUP_DIR:/backup" debian:jessie tar zxvf "/backup/$1" -C / -h volumes
53a579906c32 docker(libervia_cont): added a "restore" command
Goffi <goffi@goffi.org>
parents: 86
diff changeset
335 if [ $? -eq 0 ]; then
53a579906c32 docker(libervia_cont): added a "restore" command
Goffi <goffi@goffi.org>
parents: 86
diff changeset
336 printf "\nRestore finished\n"
53a579906c32 docker(libervia_cont): added a "restore" command
Goffi <goffi@goffi.org>
parents: 86
diff changeset
337 else
53a579906c32 docker(libervia_cont): added a "restore" command
Goffi <goffi@goffi.org>
parents: 86
diff changeset
338 printf "\nRestore Error !\n"
53a579906c32 docker(libervia_cont): added a "restore" command
Goffi <goffi@goffi.org>
parents: 86
diff changeset
339 exit 1
53a579906c32 docker(libervia_cont): added a "restore" command
Goffi <goffi@goffi.org>
parents: 86
diff changeset
340 fi
53a579906c32 docker(libervia_cont): added a "restore" command
Goffi <goffi@goffi.org>
parents: 86
diff changeset
341 ;;
21
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
342 PORTS)
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
343 list_ports
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
344 ;;
86
f5067e3112ba docker (libervia_cont): new commands:
Goffi <goffi@goffi.org>
parents: 28
diff changeset
345 CONFIG)
f5067e3112ba docker (libervia_cont): new commands:
Goffi <goffi@goffi.org>
parents: 28
diff changeset
346 case $# in
f5067e3112ba docker (libervia_cont): new commands:
Goffi <goffi@goffi.org>
parents: 28
diff changeset
347 0) CONF="libervia";;
f5067e3112ba docker (libervia_cont): new commands:
Goffi <goffi@goffi.org>
parents: 28
diff changeset
348 1) CONF="$1";;
f5067e3112ba docker (libervia_cont): new commands:
Goffi <goffi@goffi.org>
parents: 28
diff changeset
349 *) CONF="";;
f5067e3112ba docker (libervia_cont): new commands:
Goffi <goffi@goffi.org>
parents: 28
diff changeset
350 esac
f5067e3112ba docker (libervia_cont): new commands:
Goffi <goffi@goffi.org>
parents: 28
diff changeset
351 case $CONF in
f5067e3112ba docker (libervia_cont): new commands:
Goffi <goffi@goffi.org>
parents: 28
diff changeset
352 libervia)
f5067e3112ba docker (libervia_cont): new commands:
Goffi <goffi@goffi.org>
parents: 28
diff changeset
353 CONT_CONF_FILE="/home/sat/.config/sat/sat.conf"
f5067e3112ba docker (libervia_cont): new commands:
Goffi <goffi@goffi.org>
parents: 28
diff changeset
354 ;;
f5067e3112ba docker (libervia_cont): new commands:
Goffi <goffi@goffi.org>
parents: 28
diff changeset
355 prosody)
f5067e3112ba docker (libervia_cont): new commands:
Goffi <goffi@goffi.org>
parents: 28
diff changeset
356 CONT_CONF_FILE="/etc/prosody/prosody_sat_cfg/prosody.cfg.lua"
f5067e3112ba docker (libervia_cont): new commands:
Goffi <goffi@goffi.org>
parents: 28
diff changeset
357 ;;
f5067e3112ba docker (libervia_cont): new commands:
Goffi <goffi@goffi.org>
parents: 28
diff changeset
358 *) printf "\nPlease enter type of configuration to edit (libervia, prosody)\n"
f5067e3112ba docker (libervia_cont): new commands:
Goffi <goffi@goffi.org>
parents: 28
diff changeset
359 exit 1
f5067e3112ba docker (libervia_cont): new commands:
Goffi <goffi@goffi.org>
parents: 28
diff changeset
360 ;;
f5067e3112ba docker (libervia_cont): new commands:
Goffi <goffi@goffi.org>
parents: 28
diff changeset
361 esac
f5067e3112ba docker (libervia_cont): new commands:
Goffi <goffi@goffi.org>
parents: 28
diff changeset
362
f5067e3112ba docker (libervia_cont): new commands:
Goffi <goffi@goffi.org>
parents: 28
diff changeset
363 HOST_CONF_FILE=$(basename $CONT_CONF_FILE)
f5067e3112ba docker (libervia_cont): new commands:
Goffi <goffi@goffi.org>
parents: 28
diff changeset
364
f5067e3112ba docker (libervia_cont): new commands:
Goffi <goffi@goffi.org>
parents: 28
diff changeset
365 printf "\ngetting configuration for $CONF\n"
f5067e3112ba docker (libervia_cont): new commands:
Goffi <goffi@goffi.org>
parents: 28
diff changeset
366 # we copy config file to a temporary dit
f5067e3112ba docker (libervia_cont): new commands:
Goffi <goffi@goffi.org>
parents: 28
diff changeset
367 # then edit with $EDITOR and put it back
f5067e3112ba docker (libervia_cont): new commands:
Goffi <goffi@goffi.org>
parents: 28
diff changeset
368
f5067e3112ba docker (libervia_cont): new commands:
Goffi <goffi@goffi.org>
parents: 28
diff changeset
369 TMP_DIR=$(mktemp -d 2>/dev/null)
f5067e3112ba docker (libervia_cont): new commands:
Goffi <goffi@goffi.org>
parents: 28
diff changeset
370 if [ $? -ne 0 ]; then
f5067e3112ba docker (libervia_cont): new commands:
Goffi <goffi@goffi.org>
parents: 28
diff changeset
371 TMP_DIR="$DEFAULT_TMP_DIR"
f5067e3112ba docker (libervia_cont): new commands:
Goffi <goffi@goffi.org>
parents: 28
diff changeset
372 mkdir -p "$TMP_DIR"
f5067e3112ba docker (libervia_cont): new commands:
Goffi <goffi@goffi.org>
parents: 28
diff changeset
373 fi
f5067e3112ba docker (libervia_cont): new commands:
Goffi <goffi@goffi.org>
parents: 28
diff changeset
374
f5067e3112ba docker (libervia_cont): new commands:
Goffi <goffi@goffi.org>
parents: 28
diff changeset
375 docker cp "$VOLUME_ALIAS:$CONT_CONF_FILE" "$TMP_DIR/$HOST_CONF_FILE"
f5067e3112ba docker (libervia_cont): new commands:
Goffi <goffi@goffi.org>
parents: 28
diff changeset
376 "$EDITOR" "$TMP_DIR/$HOST_CONF_FILE"
f5067e3112ba docker (libervia_cont): new commands:
Goffi <goffi@goffi.org>
parents: 28
diff changeset
377 if [ $? -eq 0 -a -s "$TMP_DIR/$HOST_CONF_FILE" ]; then
f5067e3112ba docker (libervia_cont): new commands:
Goffi <goffi@goffi.org>
parents: 28
diff changeset
378 printf "updating configuration\n"
f5067e3112ba docker (libervia_cont): new commands:
Goffi <goffi@goffi.org>
parents: 28
diff changeset
379 docker cp "$TMP_DIR/$HOST_CONF_FILE" "$VOLUME_ALIAS:$CONT_CONF_FILE"
f5067e3112ba docker (libervia_cont): new commands:
Goffi <goffi@goffi.org>
parents: 28
diff changeset
380 fi
f5067e3112ba docker (libervia_cont): new commands:
Goffi <goffi@goffi.org>
parents: 28
diff changeset
381 rm -rf "$TMP_DIR"
f5067e3112ba docker (libervia_cont): new commands:
Goffi <goffi@goffi.org>
parents: 28
diff changeset
382 ;;
f5067e3112ba docker (libervia_cont): new commands:
Goffi <goffi@goffi.org>
parents: 28
diff changeset
383
21
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
384 *) printf "Error: unknown command !"
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
385 exit 2
0e78c8a4626e Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
Goffi <goffi@goffi.org>
parents:
diff changeset
386 esac