From 694bbef6335b20dc9ae0aec6f49c79401559b54f Mon Sep 17 00:00:00 2001 From: wangyan Date: Mon, 24 Jul 2017 03:21:38 -0700 Subject: [PATCH 1/4] build registry --- make/photon/registry/Dockerfile | 2 +- make/photon/registry/Dockerfile_Golang | 10 +++++ make/photon/registry/builder | 62 ++++++++++++++++++++++++++ make/photon/registry/entrypoint.sh | 10 +++++ 4 files changed, 83 insertions(+), 1 deletion(-) create mode 100644 make/photon/registry/Dockerfile_Golang create mode 100755 make/photon/registry/builder create mode 100644 make/photon/registry/entrypoint.sh diff --git a/make/photon/registry/Dockerfile b/make/photon/registry/Dockerfile index a4100c4d1..0857edebc 100644 --- a/make/photon/registry/Dockerfile +++ b/make/photon/registry/Dockerfile @@ -6,7 +6,7 @@ MAINTAINER wangyan@vmware.com COPY entrypoint.sh / RUN chmod u+x /entrypoint.sh -COPY registry /usr/bin +COPY binary/registry /usr/bin RUN chmod u+x /usr/bin/registry VOLUME ["/var/lib/registry"] diff --git a/make/photon/registry/Dockerfile_Golang b/make/photon/registry/Dockerfile_Golang new file mode 100644 index 000000000..d9427e869 --- /dev/null +++ b/make/photon/registry/Dockerfile_Golang @@ -0,0 +1,10 @@ +FROM golang:1.7.3 + +ENV DISTRIBUTION_DIR /go/src/github.com/docker/distribution +ENV DOCKER_BUILDTAGS include_oss include_gcs + +WORKDIR $DISTRIBUTION_DIR +COPY . $DISTRIBUTION_DIR +COPY cmd/registry/config-dev.yml /etc/docker/registry/config.yml + +RUN make PREFIX=/go clean binaries \ No newline at end of file diff --git a/make/photon/registry/builder b/make/photon/registry/builder new file mode 100755 index 000000000..412365e1c --- /dev/null +++ b/make/photon/registry/builder @@ -0,0 +1,62 @@ +#!/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 \ No newline at end of file diff --git a/make/photon/registry/entrypoint.sh b/make/photon/registry/entrypoint.sh new file mode 100644 index 000000000..f8d07d800 --- /dev/null +++ b/make/photon/registry/entrypoint.sh @@ -0,0 +1,10 @@ +#!/bin/sh + +set -e + +case "$1" in + *.yaml|*.yml) set -- registry serve "$@" ;; + serve|garbage-collect|help|-*) set -- registry "$@" ;; +esac + +exec "$@" \ No newline at end of file From 3f831b23260b4f5a2a708b2c2188c5e55875d825 Mon Sep 17 00:00:00 2001 From: wangyan Date: Mon, 24 Jul 2017 17:49:59 -0700 Subject: [PATCH 2/4] update per comments --- make/photon/registry/{Dockerfile_Golang => Dockerfile.binary} | 0 make/photon/registry/builder | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) rename make/photon/registry/{Dockerfile_Golang => Dockerfile.binary} (100%) diff --git a/make/photon/registry/Dockerfile_Golang b/make/photon/registry/Dockerfile.binary similarity index 100% rename from make/photon/registry/Dockerfile_Golang rename to make/photon/registry/Dockerfile.binary diff --git a/make/photon/registry/builder b/make/photon/registry/builder index 412365e1c..9533d4836 100755 --- a/make/photon/registry/builder +++ b/make/photon/registry/builder @@ -41,7 +41,7 @@ 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 +docker build -f $TEMP/Dockerfile.binary -t registry-golang $TEMP echo 'copy the registry binary to local...' ID=$(docker create registry-golang) From c952db3c73fed3200fa0779e47de3db2adc97335 Mon Sep 17 00:00:00 2001 From: wangyan Date: Mon, 24 Jul 2017 18:32:50 -0700 Subject: [PATCH 3/4] update --- make/photon/registry/builder | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/make/photon/registry/builder b/make/photon/registry/builder index 9533d4836..9b81bd1a9 100755 --- a/make/photon/registry/builder +++ b/make/photon/registry/builder @@ -40,7 +40,7 @@ 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 +cp Dockerfile.binary $TEMP docker build -f $TEMP/Dockerfile.binary -t registry-golang $TEMP echo 'copy the registry binary to local...' From efc10127f3ce38ca74122d0ed1869da60f38acf2 Mon Sep 17 00:00:00 2001 From: wangyan Date: Wed, 26 Jul 2017 02:22:03 -0700 Subject: [PATCH 4/4] update message --- make/photon/registry/builder | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/make/photon/registry/builder b/make/photon/registry/builder index 9b81bd1a9..0b13138b4 100755 --- a/make/photon/registry/builder +++ b/make/photon/registry/builder @@ -58,5 +58,5 @@ docker build -f Dockerfile -t $PHOTONIMAGE . rm -rf $TEMP rm -rf binary -echo 'Push image to server.' +echo 'Push image to docker hub.' ../../pushimage.sh $PHOTONIMAGE USERNAME PASSWORD \ No newline at end of file