mirror of
https://github.com/goharbor/harbor.git
synced 2024-11-27 20:59:10 +01:00
62 lines
1.4 KiB
Plaintext
62 lines
1.4 KiB
Plaintext
|
#!/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_Golang $TEMP
|
||
|
docker build -f $TEMP/Dockerfile_Golang -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
|
||
|
docker build -f Dockerfile -t $PHOTONIMAGE .
|
||
|
|
||
|
rm -rf $TEMP
|
||
|
rm -rf binary
|
||
|
|
||
|
echo 'Push image to server.'
|
||
|
../../pushimage.sh $PHOTONIMAGE USERNAME PASSWORD
|