annotate docker/libervia_cont.sh @ 92:5a0ed7f94ab8

docker (libervia_cont): added "-f" option in help message for logs
author Goffi <goffi@goffi.org>
date Wed, 24 Feb 2016 15:23:38 +0100
parents 30f3f83d6959
children 70f65a6b3392
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
91
30f3f83d6959 docker (prosody, libervia_cont): expose HTTP upload ports in Prosody image
Goffi <goffi@goffi.org>
parents: 90
diff changeset
39 PROSODY_PORTS="5222 5269 5280 5281"
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
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"
91
30f3f83d6959 docker (prosody, libervia_cont): expose HTTP upload ports in Prosody image
Goffi <goffi@goffi.org>
parents: 90
diff changeset
42 PORT_5280_NAME="HTTP Upload"
30f3f83d6959 docker (prosody, libervia_cont): expose HTTP upload ports in Prosody image
Goffi <goffi@goffi.org>
parents: 90
diff changeset
43 PORT_5281_NAME="HTTP Upload (HTTPS)"
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
44 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
45 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
46 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
47 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
48 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
49 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
50 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
51 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
52
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
53 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
54
87
53a579906c32 docker(libervia_cont): added a "restore" command
Goffi <goffi@goffi.org>
parents: 86
diff changeset
55 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
56
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
57 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
58 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
59
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
60 CONT_CERT_DIR="/usr/share/sat/certificates"
86
f5067e3112ba docker (libervia_cont): new commands:
Goffi <goffi@goffi.org>
parents: 28
diff changeset
61 DEFAULT_TMP_DIR="/tmp/tmp_sat_docker"
f5067e3112ba docker (libervia_cont): new commands:
Goffi <goffi@goffi.org>
parents: 28
diff changeset
62
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 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
64 # 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
65
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=$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
67 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
68 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
69 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
70 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
71 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
72 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
73 }
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
74
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 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
76 # 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
77
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 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
79 # 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
80 # 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
81 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
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 [ -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
84
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 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
86 # 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
87 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
88 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
89 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
90 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
91 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
92
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 # 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
94 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
95 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
96 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
97 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
98 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
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 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
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 [ -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
103 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
104 }
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
105
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 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
107 # 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
108
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 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
110 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
111 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
112 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
113 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
114 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
115 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
116 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
117 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
118 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
119 }
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
120
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
121 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
122 # 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
123 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
124 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
125 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
126 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
127 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
128 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
129 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
130 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
131 else
a5e4c6c2a37d docker: replaces tabs by spaces, download first app containers then data container + minor changes
Goffi <goffi@goffi.org>
parents: 25
diff changeset
132 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
133 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
134 fi
a5e4c6c2a37d docker: replaces tabs by spaces, download first app containers then data container + minor changes
Goffi <goffi@goffi.org>
parents: 25
diff changeset
135 fi
a5e4c6c2a37d docker: replaces tabs by spaces, download first app containers then data container + minor changes
Goffi <goffi@goffi.org>
parents: 25
diff changeset
136 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
137 }
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
138
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
139 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
140 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
141 if [ $? -ne 0 ]; then
86
f5067e3112ba docker (libervia_cont): new commands:
Goffi <goffi@goffi.org>
parents: 28
diff changeset
142 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
143 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
144 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
145 }
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
146
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 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
148 # 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
149
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 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
151 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
152
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 -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
154 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
155 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
156
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 -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
158 -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
159 -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
160 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
161 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
162 ;;
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
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 -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
165 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
166 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
167 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
168 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
169 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
170 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
171 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
172 ;;
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
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 -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
175 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
176 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
177 ;;
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
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 *) 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
180 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
181 ;;
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 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
183 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
184 }
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
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
186 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
187
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
188 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
189 case $1 in
86
f5067e3112ba docker (libervia_cont): new commands:
Goffi <goffi@goffi.org>
parents: 28
diff changeset
190 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
191 stop) CMD=STOP;;
86
f5067e3112ba docker (libervia_cont): new commands:
Goffi <goffi@goffi.org>
parents: 28
diff changeset
192 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
193 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
194 backup) CMD=BACKUP;;
87
53a579906c32 docker(libervia_cont): added a "restore" command
Goffi <goffi@goffi.org>
parents: 86
diff changeset
195 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
196 ports) CMD=PORTS;;
86
f5067e3112ba docker (libervia_cont): new commands:
Goffi <goffi@goffi.org>
parents: 28
diff changeset
197 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
198 -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
199 -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
200 *) 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
201 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
202 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
203 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
204 else
86
f5067e3112ba docker (libervia_cont): new commands:
Goffi <goffi@goffi.org>
parents: 28
diff changeset
205 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
206 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
207
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 case $CMD in
86
f5067e3112ba docker (libervia_cont): new commands:
Goffi <goffi@goffi.org>
parents: 28
diff changeset
209 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
210 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
211 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
212
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
213 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
214 # 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
215 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
216 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
217 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
218 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
219 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
220 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
221 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
222 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
223 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
224 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
225 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
226 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
227 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
228 # 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
229 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
230 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
231 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
232 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
233 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
234 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
235 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
236 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
237 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
238 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
239 ;;
86
f5067e3112ba docker (libervia_cont): new commands:
Goffi <goffi@goffi.org>
parents: 28
diff changeset
240 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
241 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
242 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
243 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
244 *) 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
245 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
246 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
247 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
248 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
249 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
250 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
251 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
252 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
253 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
254 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
255 done
92
5a0ed7f94ab8 docker (libervia_cont): added "-f" option in help message for logs
Goffi <goffi@goffi.org>
parents: 91
diff changeset
256 printf '\nLibervia is launched and should be reachable in a couple of seconds.\nYou can check logs with "docker logs -f libervia" (or any other container name).\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
257 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
258 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
259 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
260 ;;
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 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
262 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
263 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 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
265 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
266 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
267 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
268 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
269 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
270 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
271 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
272 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
273 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
274 ;;
87
53a579906c32 docker(libervia_cont): added a "restore" command
Goffi <goffi@goffi.org>
parents: 86
diff changeset
275 RESTART)
53a579906c32 docker(libervia_cont): added a "restore" command
Goffi <goffi@goffi.org>
parents: 86
diff changeset
276 printf "restarting containers...\n"
53a579906c32 docker(libervia_cont): added a "restore" command
Goffi <goffi@goffi.org>
parents: 86
diff changeset
277 "$0" stop && "$0" start "$@"
53a579906c32 docker(libervia_cont): added a "restore" command
Goffi <goffi@goffi.org>
parents: 86
diff changeset
278 ;;
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 UPDATE)
28
9ca1e7fe0f87 Docker: we update images, not containers
Goffi <goffi@goffi.org>
parents: 26
diff changeset
280 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
281 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
282 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
283 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
284 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
285 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
286 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
287 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
288 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
289 done
23
b10f01885949 docker: fixed libervia_cont update + added some newlines
Goffi <goffi@goffi.org>
parents: 22
diff changeset
290 if [ $errors -eq 0 ]; then
28
9ca1e7fe0f87 Docker: we update images, not containers
Goffi <goffi@goffi.org>
parents: 26
diff changeset
291 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
292 else
28
9ca1e7fe0f87 Docker: we update images, not containers
Goffi <goffi@goffi.org>
parents: 26
diff changeset
293 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
294 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
295 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
296 ;;
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
297 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
298 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
299 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
300 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
301 *) 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
302 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
303 ;;
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
304 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
305 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
306 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
307 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
308 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
309 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
310 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
311 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
312 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
313 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
314 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
315 ;;
87
53a579906c32 docker(libervia_cont): added a "restore" command
Goffi <goffi@goffi.org>
parents: 86
diff changeset
316 RESTORE)
53a579906c32 docker(libervia_cont): added a "restore" command
Goffi <goffi@goffi.org>
parents: 86
diff changeset
317 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
318 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
319 exit 1
53a579906c32 docker(libervia_cont): added a "restore" command
Goffi <goffi@goffi.org>
parents: 86
diff changeset
320 fi
53a579906c32 docker(libervia_cont): added a "restore" command
Goffi <goffi@goffi.org>
parents: 86
diff changeset
321 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
322 if [ $? -ne 0 ]; then
53a579906c32 docker(libervia_cont): added a "restore" command
Goffi <goffi@goffi.org>
parents: 86
diff changeset
323 printf "Can't create $VOLUME_ALIAS container.\n\
53a579906c32 docker(libervia_cont): added a "restore" command
Goffi <goffi@goffi.org>
parents: 86
diff changeset
324 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
325 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
326 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
327 exit 1
53a579906c32 docker(libervia_cont): added a "restore" command
Goffi <goffi@goffi.org>
parents: 86
diff changeset
328 fi
53a579906c32 docker(libervia_cont): added a "restore" command
Goffi <goffi@goffi.org>
parents: 86
diff changeset
329
53a579906c32 docker(libervia_cont): added a "restore" command
Goffi <goffi@goffi.org>
parents: 86
diff changeset
330 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
331 HOST_BACKUP_DIR="$(dirname "$1")"
53a579906c32 docker(libervia_cont): added a "restore" command
Goffi <goffi@goffi.org>
parents: 86
diff changeset
332 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
333 # 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
334 HOST_BACKUP_DIR=$(pwd)
53a579906c32 docker(libervia_cont): added a "restore" command
Goffi <goffi@goffi.org>
parents: 86
diff changeset
335 fi
53a579906c32 docker(libervia_cont): added a "restore" command
Goffi <goffi@goffi.org>
parents: 86
diff changeset
336 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
337 if [ $? -eq 0 ]; then
53a579906c32 docker(libervia_cont): added a "restore" command
Goffi <goffi@goffi.org>
parents: 86
diff changeset
338 printf "\nRestore finished\n"
53a579906c32 docker(libervia_cont): added a "restore" command
Goffi <goffi@goffi.org>
parents: 86
diff changeset
339 else
53a579906c32 docker(libervia_cont): added a "restore" command
Goffi <goffi@goffi.org>
parents: 86
diff changeset
340 printf "\nRestore Error !\n"
53a579906c32 docker(libervia_cont): added a "restore" command
Goffi <goffi@goffi.org>
parents: 86
diff changeset
341 exit 1
53a579906c32 docker(libervia_cont): added a "restore" command
Goffi <goffi@goffi.org>
parents: 86
diff changeset
342 fi
53a579906c32 docker(libervia_cont): added a "restore" command
Goffi <goffi@goffi.org>
parents: 86
diff changeset
343 ;;
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
344 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
345 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
346 ;;
86
f5067e3112ba docker (libervia_cont): new commands:
Goffi <goffi@goffi.org>
parents: 28
diff changeset
347 CONFIG)
f5067e3112ba docker (libervia_cont): new commands:
Goffi <goffi@goffi.org>
parents: 28
diff changeset
348 case $# in
f5067e3112ba docker (libervia_cont): new commands:
Goffi <goffi@goffi.org>
parents: 28
diff changeset
349 0) CONF="libervia";;
f5067e3112ba docker (libervia_cont): new commands:
Goffi <goffi@goffi.org>
parents: 28
diff changeset
350 1) CONF="$1";;
f5067e3112ba docker (libervia_cont): new commands:
Goffi <goffi@goffi.org>
parents: 28
diff changeset
351 *) CONF="";;
f5067e3112ba docker (libervia_cont): new commands:
Goffi <goffi@goffi.org>
parents: 28
diff changeset
352 esac
f5067e3112ba docker (libervia_cont): new commands:
Goffi <goffi@goffi.org>
parents: 28
diff changeset
353 case $CONF in
f5067e3112ba docker (libervia_cont): new commands:
Goffi <goffi@goffi.org>
parents: 28
diff changeset
354 libervia)
f5067e3112ba docker (libervia_cont): new commands:
Goffi <goffi@goffi.org>
parents: 28
diff changeset
355 CONT_CONF_FILE="/home/sat/.config/sat/sat.conf"
f5067e3112ba docker (libervia_cont): new commands:
Goffi <goffi@goffi.org>
parents: 28
diff changeset
356 ;;
f5067e3112ba docker (libervia_cont): new commands:
Goffi <goffi@goffi.org>
parents: 28
diff changeset
357 prosody)
f5067e3112ba docker (libervia_cont): new commands:
Goffi <goffi@goffi.org>
parents: 28
diff changeset
358 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
359 ;;
f5067e3112ba docker (libervia_cont): new commands:
Goffi <goffi@goffi.org>
parents: 28
diff changeset
360 *) 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
361 exit 1
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 esac
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 HOST_CONF_FILE=$(basename $CONT_CONF_FILE)
f5067e3112ba docker (libervia_cont): new commands:
Goffi <goffi@goffi.org>
parents: 28
diff changeset
366
f5067e3112ba docker (libervia_cont): new commands:
Goffi <goffi@goffi.org>
parents: 28
diff changeset
367 printf "\ngetting configuration for $CONF\n"
f5067e3112ba docker (libervia_cont): new commands:
Goffi <goffi@goffi.org>
parents: 28
diff changeset
368 # we copy config file to a temporary dit
f5067e3112ba docker (libervia_cont): new commands:
Goffi <goffi@goffi.org>
parents: 28
diff changeset
369 # then edit with $EDITOR and put it back
f5067e3112ba docker (libervia_cont): new commands:
Goffi <goffi@goffi.org>
parents: 28
diff changeset
370
f5067e3112ba docker (libervia_cont): new commands:
Goffi <goffi@goffi.org>
parents: 28
diff changeset
371 TMP_DIR=$(mktemp -d 2>/dev/null)
f5067e3112ba docker (libervia_cont): new commands:
Goffi <goffi@goffi.org>
parents: 28
diff changeset
372 if [ $? -ne 0 ]; then
f5067e3112ba docker (libervia_cont): new commands:
Goffi <goffi@goffi.org>
parents: 28
diff changeset
373 TMP_DIR="$DEFAULT_TMP_DIR"
f5067e3112ba docker (libervia_cont): new commands:
Goffi <goffi@goffi.org>
parents: 28
diff changeset
374 mkdir -p "$TMP_DIR"
f5067e3112ba docker (libervia_cont): new commands:
Goffi <goffi@goffi.org>
parents: 28
diff changeset
375 fi
f5067e3112ba docker (libervia_cont): new commands:
Goffi <goffi@goffi.org>
parents: 28
diff changeset
376
f5067e3112ba docker (libervia_cont): new commands:
Goffi <goffi@goffi.org>
parents: 28
diff changeset
377 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
378 "$EDITOR" "$TMP_DIR/$HOST_CONF_FILE"
f5067e3112ba docker (libervia_cont): new commands:
Goffi <goffi@goffi.org>
parents: 28
diff changeset
379 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
380 printf "updating configuration\n"
f5067e3112ba docker (libervia_cont): new commands:
Goffi <goffi@goffi.org>
parents: 28
diff changeset
381 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
382 fi
f5067e3112ba docker (libervia_cont): new commands:
Goffi <goffi@goffi.org>
parents: 28
diff changeset
383 rm -rf "$TMP_DIR"
f5067e3112ba docker (libervia_cont): new commands:
Goffi <goffi@goffi.org>
parents: 28
diff changeset
384 ;;
f5067e3112ba docker (libervia_cont): new commands:
Goffi <goffi@goffi.org>
parents: 28
diff changeset
385
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
386 *) 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
387 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
388 esac