You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
57 lines
1.1 KiB
57 lines
1.1 KiB
7 years ago
|
#!/bin/bash -e
|
||
|
|
||
7 years ago
|
while test $# -gt 0; do
|
||
|
case "$1" in
|
||
|
(-h|--help) cat <<EOF
|
||
|
$0 [OPTIONS] FILES…
|
||
|
|
||
|
OPTIONS
|
||
|
|
||
|
-h, --help show this help
|
||
|
|
||
|
FILES…
|
||
|
|
||
|
List of stack names or yaml files to deploy. There must be yaml
|
||
|
files with the same name. The extension .yaml may be given or not.
|
||
|
|
||
|
DESCRIPTION
|
||
|
|
||
|
Deploys stack from yaml files. The stack name is identical to the
|
||
|
file name, but wihout path and without .yaml extendsion.
|
||
|
|
||
|
EXAMPLS
|
||
|
|
||
|
The following calls ado the same and deploy a local yaml file:
|
||
|
|
||
|
$0 yaml-file-name
|
||
|
$0 yaml-file-name.yaml
|
||
|
$0 ./yaml-file-name.yaml
|
||
|
|
||
|
Deploy three files from three sources:
|
||
|
|
||
|
$0 /path/to/file1/first.yaml /path/to/file2/second.yaml third
|
||
|
|
||
|
EOF
|
||
|
exit;;
|
||
|
(*) break;;
|
||
|
esac
|
||
|
if test $# -lt 1; then
|
||
|
echo "error: missing argument, try $0 --help" 1>&2
|
||
|
exit 1
|
||
|
fi
|
||
|
shift
|
||
|
done
|
||
|
|
||
7 years ago
|
for f in $*; do
|
||
|
f=${f%.yaml}
|
||
|
if ! test -e ${f}.yaml; then
|
||
|
echo "ERROR: no file ${f}.yaml" 1>&2
|
||
|
exit 1
|
||
|
fi
|
||
|
echo "... deploying $f"
|
||
|
for d in $(sed -n 's/^ *source: *//p' ${f}.yaml); do
|
||
|
test -e $d || mkdir -p $d
|
||
|
done
|
||
7 years ago
|
docker stack deploy --compose-file ${f}.yaml ${##*/f}
|
||
7 years ago
|
done
|