annotate deploy/linux/build-docker.sh @ 54:e7787ab0f696

Provisional Docker build
author Chris Cannam
date Thu, 06 Feb 2020 16:45:29 +0000
parents
children
rev   line source
Chris@54 1 #!/bin/bash
Chris@54 2 #
Chris@54 3 # Docker required
Chris@54 4
Chris@54 5 set -eu
Chris@54 6
Chris@54 7 current=$(hg id | awk '{ print $1; }')
Chris@54 8
Chris@54 9 case "$current" in
Chris@54 10 *+) echo "ERROR: Current working copy has been modified - unmodified copy required so we know we can check it out separately and obtain the same contents"; exit 2;;
Chris@54 11 *);;
Chris@54 12 esac
Chris@54 13
Chris@54 14 echo
Chris@54 15 echo "Building from revision $current..."
Chris@54 16
Chris@54 17 dockerdir=deploy/linux/docker
Chris@54 18
Chris@54 19 cat "$dockerdir"/Dockerfile.in | \
Chris@54 20 perl -p -e "s/\[\[REVISION\]\]/$current/g" > \
Chris@54 21 "$dockerdir"/Dockerfile.gen
Chris@54 22
Chris@54 23 fgrep 'hg.sr.ht' ~/.ssh/known_hosts > "$dockerdir"/known_hosts
Chris@54 24 cp ~/.ssh/id_rsa_build "$dockerdir"/id_rsa_build
Chris@54 25 chmod 600 "$dockerdir"/known_hosts "$dockerdir"/id_rsa_build
Chris@54 26 trap "rm $dockerdir/known_hosts $dockerdir/id_rsa_build" 0
Chris@54 27
Chris@54 28 dockertag="cannam/vamp-plugin-pack-installer-$current"
Chris@54 29
Chris@54 30 sudo docker build -t "$dockertag" -f "$dockerdir"/Dockerfile.gen "$dockerdir"
Chris@54 31
Chris@54 32 outdir="$dockerdir/output"
Chris@54 33 mkdir -p "$outdir"
Chris@54 34
Chris@54 35 container=$(sudo docker create "$dockertag")
Chris@54 36
Chris@54 37 sudo docker cp "$container":output.tar "$outdir"
Chris@54 38 sudo docker rm "$container"
Chris@54 39
Chris@54 40 ( cd "$outdir" ; tar xf output.tar && rm -f output.tar )