From 1b60bb255ce30f25fe0107970284ce72701cd46c Mon Sep 17 00:00:00 2001 From: Daniel Pacak Date: Fri, 14 Feb 2020 11:58:51 +0100 Subject: [PATCH] refactor(Makefile): Add variables for download URLs Signed-off-by: Daniel Pacak --- make/photon/Makefile | 15 ++++++++++----- make/photon/clair-adapter/builder.sh | 12 ++++++------ make/photon/trivy-adapter/builder.sh | 12 ++++++------ 3 files changed, 22 insertions(+), 17 deletions(-) diff --git a/make/photon/Makefile b/make/photon/Makefile index 250f79d35..ada398107 100644 --- a/make/photon/Makefile +++ b/make/photon/Makefile @@ -60,6 +60,7 @@ DOCKERIMAGENAME_POSTGRESQL=goharbor/postgresql-photon DOCKERFILEPATH_CLAIR=$(DOCKERFILEPATH)/clair DOCKERFILENAME_CLAIR=Dockerfile DOCKERIMAGENAME_CLAIR=goharbor/clair-photon +CLAIR_ADAPTER_DOWNLOAD_URL=https://github.com/goharbor/harbor-scanner-clair/releases/download/$(CLAIRADAPTERVERSION)/harbor-scanner-clair_$(CLAIRADAPTERVERSION:v%=%)_Linux_x86_64.tar.gz DOCKERFILEPATH_CLAIR_ADAPTER=$(DOCKERFILEPATH)/clair-adapter DOCKERFILENAME_CLAIR_ADAPTER=Dockerfile @@ -68,6 +69,8 @@ DOCKERIMAGENAME_CLAIR_ADAPTER=goharbor/clair-adapter-photon DOCKERFILEPATH_TRIVY_ADAPTER=$(DOCKERFILEPATH)/trivy-adapter DOCKERFILENAME_TRIVY_ADAPTER=Dockerfile DOCKERIMAGENAME_TRIVY_ADAPTER=goharbor/trivy-adapter-photon +TRIVY_DOWNLOAD_URL=https://github.com/aquasecurity/trivy/releases/download/$(TRIVYVERSION)/trivy_$(TRIVYVERSION:v%=%)_Linux-64bit.tar.gz +TRIVY_ADAPTER_DOWNLOAD_URL=https://github.com/aquasecurity/harbor-scanner-trivy/releases/download/$(TRIVYADAPTERVERSION)/harbor-scanner-trivy_$(TRIVYADAPTERVERSION:v%=%)_Linux_x86_64.tar.gz DOCKERFILEPATH_NGINX=$(DOCKERFILEPATH)/nginx DOCKERFILENAME_NGINX=Dockerfile @@ -152,13 +155,15 @@ _build_clair_adapter: @if [ "$(CLAIRFLAG)" = "true" ] ; then \ if [ "$(BUILDBIN)" != "true" ] ; then \ rm -rf $(DOCKERFILEPATH_CLAIR_ADAPTER)/binary && mkdir -p $(DOCKERFILEPATH_CLAIR_ADAPTER)/binary && \ - $(call _extract_archive, https://github.com/goharbor/harbor-scanner-clair/releases/download/$(CLAIRADAPTERVERSION)/harbor-scanner-clair_$(CLAIRADAPTERVERSION:v%=%)_Linux_x86_64.tar.gz, $(DOCKERFILEPATH_CLAIR_ADAPTER)/binary/) && \ + $(call _extract_archive, $(CLAIR_ADAPTER_DOWNLOAD_URL), $(DOCKERFILEPATH_CLAIR_ADAPTER)/binary/) && \ mv $(DOCKERFILEPATH_CLAIR_ADAPTER)/binary/scanner-clair $(DOCKERFILEPATH_CLAIR_ADAPTER)/binary/harbor-scanner-clair; \ else \ cd $(DOCKERFILEPATH_CLAIR_ADAPTER) && $(DOCKERFILEPATH_CLAIR_ADAPTER)/builder.sh $(CLAIRADAPTERVERSION) && cd - ; \ fi ; \ - echo "building clair adapter container for photon..." ; \ - $(DOCKERBUILD) --build-arg harbor_base_image_version=$(BASEIMAGETAG) -f $(DOCKERFILEPATH_CLAIR_ADAPTER)/$(DOCKERFILENAME_CLAIR_ADAPTER) -t $(DOCKERIMAGENAME_CLAIR_ADAPTER):$(CLAIRADAPTERVERSION)-$(VERSIONTAG) . ; \ + echo "Building Clair adapter container for photon..." ; \ + $(DOCKERBUILD) --build-arg harbor_base_image_version=$(BASEIMAGETAG) \ + -f $(DOCKERFILEPATH_CLAIR_ADAPTER)/$(DOCKERFILENAME_CLAIR_ADAPTER) \ + -t $(DOCKERIMAGENAME_CLAIR_ADAPTER):$(CLAIRADAPTERVERSION)-$(VERSIONTAG) . ; \ rm -rf $(DOCKERFILEPATH_CLAIR_ADAPTER)/binary; \ echo "Done." ; \ fi @@ -167,10 +172,10 @@ _build_trivy_adapter: @if [ "$(TRIVYFLAG)" = "true" ] ; then \ rm -rf $(DOCKERFILEPATH_TRIVY_ADAPTER)/binary && mkdir -p $(DOCKERFILEPATH_TRIVY_ADAPTER)/binary ; \ echo "Downloading Trivy scanner $(TRIVYVERSION)..." ; \ - $(call _extract_archive, https://github.com/aquasecurity/trivy/releases/download/$(TRIVYVERSION)/trivy_$(TRIVYVERSION:v%=%)_Linux-64bit.tar.gz, $(DOCKERFILEPATH_TRIVY_ADAPTER)/binary/) ; \ + $(call _extract_archive, $(TRIVY_DOWNLOAD_URL), $(DOCKERFILEPATH_TRIVY_ADAPTER)/binary/) ; \ if [ "$(BUILDBIN)" != "true" ] ; then \ echo "Downloading Trivy adapter $(TRIVYADAPTERVERSION)..." ; \ - $(call _extract_archive, https://github.com/aquasecurity/harbor-scanner-trivy/releases/download/$(TRIVYADAPTERVERSION)/harbor-scanner-trivy_$(TRIVYADAPTERVERSION:v%=%)_Linux_x86_64.tar.gz, $(DOCKERFILEPATH_TRIVY_ADAPTER)/binary/) ; \ + $(call _extract_archive, $(TRIVY_ADAPTER_DOWNLOAD_URL), $(DOCKERFILEPATH_TRIVY_ADAPTER)/binary/) ; \ else \ echo "Building Trivy adapter $(TRIVYADAPTERVERSION) from sources..." ; \ cd $(DOCKERFILEPATH_TRIVY_ADAPTER) && $(DOCKERFILEPATH_TRIVY_ADAPTER)/builder.sh $(TRIVYADAPTERVERSION) && cd - ; \ diff --git a/make/photon/clair-adapter/builder.sh b/make/photon/clair-adapter/builder.sh index 4ab97c949..ec5e029fa 100755 --- a/make/photon/clair-adapter/builder.sh +++ b/make/photon/clair-adapter/builder.sh @@ -15,25 +15,25 @@ set -e mkdir -p binary rm -rf binary/harbor-scanner-clair || true -cd `dirname $0` +cd $(dirname $0) cur=$PWD -# the temp folder to store distribution source code... -TEMP=`mktemp -d ${TMPDIR-/tmp}/clair-adapter.XXXXXX` +# The temporary directory to clone Clair adapter source code +TEMP=$(mktemp -d ${TMPDIR-/tmp}/clair-adapter.XXXXXX) git clone https://github.com/goharbor/harbor-scanner-clair.git $TEMP cd $TEMP; git checkout $VERSION; cd - -echo 'build the clair adapter binary bases on the golang:1.13.4' +echo "Building Clair adapter binary based on golang:1.13.4..." cp Dockerfile.binary $TEMP docker build -f $TEMP/Dockerfile.binary -t clair-adapter-golang $TEMP -echo 'copy the clair adapter binary to local...' +echo "Copying Clair adapter binary from the container to the local directory..." ID=$(docker create clair-adapter-golang) docker cp $ID:/go/src/github.com/goharbor/harbor-scanner-clair/harbor-scanner-clair binary docker rm -f $ID docker rmi -f clair-adapter-golang -echo "Build clair adapter binary success, then to build photon image..." +echo "Building Clair adapter binary finished successfully" cd $cur rm -rf $TEMP diff --git a/make/photon/trivy-adapter/builder.sh b/make/photon/trivy-adapter/builder.sh index 9a5abba08..516c1d164 100755 --- a/make/photon/trivy-adapter/builder.sh +++ b/make/photon/trivy-adapter/builder.sh @@ -11,25 +11,25 @@ VERSION="$1" set -e -cd `dirname $0` +cd $(dirname $0) cur=$PWD -# the temp folder to store distribution source code... -TEMP=`mktemp -d ${TMPDIR-/tmp}/trivy-adapter.XXXXXX` +# The temporary directory to clone Trivy adapter source code +TEMP=$(mktemp -d ${TMPDIR-/tmp}/trivy-adapter.XXXXXX) git clone https://github.com/aquasecurity/harbor-scanner-trivy.git $TEMP cd $TEMP; git checkout $VERSION; cd - -echo 'build the trivy adapter binary bases on the golang:1.13.4' +echo "Building Trivy adapter binary based on golang:1.13.4..." cp Dockerfile.binary $TEMP docker build -f $TEMP/Dockerfile.binary -t trivy-adapter-golang $TEMP -echo 'copy the trivy adapter binary to local...' +echo "Copying Trivy adapter binary from the container to the local directory..." ID=$(docker create trivy-adapter-golang) docker cp $ID:/go/src/github.com/aquasecurity/harbor-scanner-trivy/scanner-trivy binary docker rm -f $ID docker rmi -f trivy-adapter-golang -echo "Build trivy adapter binary success, then to build photon image..." +echo "Building Trivy adapter binary finished successfully" cd $cur rm -rf $TEMP