#!/bin/bash set +e echo "Usage: #./builder [registry version] [photon tag] [registry username] [registry password]" if [ -z $1 ]; then error "Please set the 'version' variable" exit 1 fi if [ -z $2 ]; then error "Please set the 'photonversion' variable" exit 1 fi if [ -z $3 ]; then error "Please set the 'username' variable" exit 1 fi if [ -z $4 ]; then error "Please set the 'password' variable" exit 1 fi VERSION="$1" PHOTONVERSION="$2" USERNAME="$3" PASSWORD="$4" PHOTONIMAGE=vmware/registry:$PHOTONVERSION set -e # the temp folder to store binary file... mkdir -p binary rm -rf binary/registry || true cd `dirname $0` cur=$PWD # the temp folder to store distribution source code... TEMP=`mktemp -d /$TMPDIR/distribution.XXXXXX` git clone -b $VERSION https://github.com/docker/distribution.git $TEMP echo 'build the registry binary bases on the golang:1.7.3...' cp Dockerfile.binary $TEMP docker build -f $TEMP/Dockerfile.binary -t registry-golang $TEMP echo 'copy the registry binary to local...' ID=$(docker create registry-golang) docker cp $ID:/go/bin/registry binary docker rm -f $ID docker rmi -f registry-golang echo "Build registry binary success, then to build photon image..." cd $cur echo $PHOTONIMAGE cp $TEMP/cmd/registry/config-example.yml config.yml docker build -f Dockerfile -t $PHOTONIMAGE . rm -rf $TEMP rm -rf binary rm -rf config.yml echo 'Push image to docker hub.' ../../pushimage.sh $PHOTONIMAGE $USERNAME $PASSWORD