annotate deploy/docker/start.sh @ 1590:c18460da6620 dockerise

Numerous deployment updates
author Chris Cannam
date Thu, 17 Aug 2017 16:04:36 +0100
parents d8949733849d
children 83412a0a2389
rev   line source
Chris@1569 1 #!/bin/bash
Chris@1569 2
Chris@1586 3 mydir=$(dirname "$0")
Chris@1586 4
Chris@1574 5 dbpwd="$1"
Chris@1574 6 if [ -z "$dbpwd" ]; then
Chris@1574 7 echo "Usage: $0 <database-password>" 1>&2
Chris@1574 8 exit 2
Chris@1574 9 fi
Chris@1574 10
Chris@1587 11 set -eu -o pipefail
Chris@1569 12
Chris@1587 13 rootdir="$mydir/../.."
Chris@1586 14
Chris@1587 15 deploydir="$rootdir"/deploy
Chris@1581 16 if [ ! -d "$deploydir" ]; then
Chris@1586 17 echo "ERROR: Unexpected repository layout - expected directory at $deploydir"
Chris@1569 18 exit 2
Chris@1569 19 fi
Chris@1569 20
Chris@1581 21 managerdir="$deploydir/docker"
Chris@1581 22 if [ ! -d "$managerdir" ]; then
Chris@1581 23 echo "ERROR: Required directory $managerdir not found"
Chris@1581 24 exit 2
Chris@1581 25 fi
Chris@1581 26
Chris@1581 27 configdir="$deploydir/config"
Chris@1581 28 if [ ! -d "$configdir" ]; then
Chris@1581 29 echo "ERROR: Required directory $configdir not found"
Chris@1581 30 exit 2
Chris@1581 31 fi
Chris@1581 32
Chris@1586 33 if [ ! -f "$rootdir/postgres-dumpall" ]; then
Chris@1586 34 echo "ERROR: I expect to find a Postgres SQL multi-db dump file in $rootdir/postgres-dumpall"
Chris@1586 35 exit 2
Chris@1586 36 fi
Chris@1586 37
Chris@1586 38 fontdir="$rootdir"/public/themes/soundsoftware/stylesheets/fonts
Chris@1586 39 if [ ! -f "$fontdir/24BC0E_0_0.woff" ]; then
Chris@1586 40 echo "ERROR: I expect to find necessary webfonts in $fontdir"
Chris@1581 41 exit 2
Chris@1581 42 fi
Chris@1581 43
Chris@1574 44 for f in database.yml code.conf ; do
Chris@1587 45 cat "$configdir/$f.in" |
Chris@1574 46 sed 's/INSERT_POSTGRES_PASSWORD_HERE/'"$dbpwd"'/g' > \
Chris@1587 47 "$configdir/$f"
Chris@1574 48 done
Chris@1574 49
Chris@1587 50 provisioning_commands=$(
Chris@1590 51 for x in "$deploydir"/provision.d/[0-9]*.sh; do
Chris@1587 52 echo "RUN /bin/bash /var/www/code/deploy/provision.d/$(basename $x)"
Chris@1587 53 done | sed 's/$/\\n/' | fmt -2000 | sed 's/ RUN/RUN/g' )
Chris@1587 54
Chris@1587 55 ( echo
Chris@1587 56 echo "### DO NOT EDIT THIS FILE - it is generated from Dockerfile.in"
Chris@1587 57 echo
Chris@1587 58 ) > "$managerdir/Dockerfile"
Chris@1587 59
Chris@1587 60 cat "$managerdir/Dockerfile.in" |
Chris@1587 61 sed 's,INSERT_PROVISIONING_HERE,'"$provisioning_commands"',' >> \
Chris@1587 62 "$managerdir/Dockerfile"
Chris@1587 63
Chris@1586 64 cd "$rootdir"
Chris@1586 65
Chris@1569 66 dockertag="cannam/soundsoftware-site"
Chris@1569 67
Chris@1587 68 sudo docker build -t "$dockertag" -f "deploy/docker/Dockerfile" .
Chris@1571 69 sudo docker run -p 8080:80 -d "$dockertag"
Chris@1569 70