2015-07-29 19:04:22 +02:00
|
|
|
#!/bin/bash
|
|
|
|
|
|
|
|
set -e
|
|
|
|
|
|
|
|
if [ $# -eq 0 ] ; then
|
|
|
|
echo "Usage: ./update.sh <docker/distribution tag or branch>"
|
|
|
|
exit
|
|
|
|
fi
|
|
|
|
|
|
|
|
VERSION=$1
|
|
|
|
|
2018-11-28 02:04:48 +01:00
|
|
|
if [ "$GOARCH" == "" ] ; then
|
|
|
|
echo "Must set GOARCH in environment"
|
|
|
|
exit
|
|
|
|
fi
|
|
|
|
|
2015-07-29 19:04:22 +02:00
|
|
|
# cd to the current directory so the script can be run from anywhere.
|
|
|
|
cd `dirname $0`
|
|
|
|
|
|
|
|
echo "Fetching and building distribution $VERSION..."
|
|
|
|
|
|
|
|
# Create a temporary directory.
|
2018-11-28 02:04:48 +01:00
|
|
|
TEMP=`mktemp -d --tmpdir distribution.XXXXXX`
|
2015-07-29 19:04:22 +02:00
|
|
|
|
|
|
|
git clone -b $VERSION https://github.com/docker/distribution.git $TEMP
|
2018-11-28 02:04:48 +01:00
|
|
|
docker build --build-arg GOARCH=$GOARCH --build-arg GOARM=$GOARM -t distribution-builder-$GOARCH $TEMP
|
2015-07-29 19:04:22 +02:00
|
|
|
|
|
|
|
# Create a dummy distribution-build container so we can run a cp against it.
|
2018-11-28 02:04:48 +01:00
|
|
|
ID=$(docker create distribution-builder-$GOARCH)
|
2015-07-29 19:04:22 +02:00
|
|
|
|
|
|
|
# Update the local binary and config.
|
2018-11-28 02:04:48 +01:00
|
|
|
docker cp $ID:/go/bin/registry $GOARCH
|
|
|
|
docker cp $ID:/go/src/github.com/docker/distribution/cmd/registry/config-example.yml $GOARCH
|
2015-07-29 19:04:22 +02:00
|
|
|
|
|
|
|
# Cleanup.
|
|
|
|
docker rm -f $ID
|
2018-11-28 02:04:48 +01:00
|
|
|
docker rmi distribution-builder-$GOARCH
|
|
|
|
|
|
|
|
cp Dockerfile.noarch $GOARCH/Dockerfile
|
|
|
|
cp docker-entrypoint.sh config-example.yml $GOARCH
|
2015-07-29 19:04:22 +02:00
|
|
|
|
|
|
|
echo "Done."
|