From f367aad760bf7c535b5df29223da2f4bbaf63d15 Mon Sep 17 00:00:00 2001 From: danfengliu Date: Wed, 16 Jun 2021 15:18:40 +0800 Subject: [PATCH] Fix issue of missing db base build process in build base workflow There is extra build step for db base image building since v2.3, so this step should be added back. Signed-off-by: danfengliu --- Makefile | 24 +++++++++++++++++++++++- VERSION | 2 +- make/photon/Makefile | 14 +++++++++++--- make/pushimage.sh | 39 +++++++-------------------------------- 4 files changed, 42 insertions(+), 37 deletions(-) diff --git a/Makefile b/Makefile index 5f749ccbc..8b260e495 100644 --- a/Makefile +++ b/Makefile @@ -256,6 +256,8 @@ DOCKERIMGFILE=harbor HARBORPKG=harbor # pull/push image +PUSHSCRIPTPATH=$(MAKEPATH) +PUSHSCRIPTNAME=pushimage.sh REGISTRYUSER= REGISTRYPASSWORD= @@ -435,10 +437,30 @@ build: -e TRIVY_DOWNLOAD_URL=$(TRIVY_DOWNLOAD_URL) -e TRIVY_ADAPTER_DOWNLOAD_URL=$(TRIVY_ADAPTER_DOWNLOAD_URL) \ -e PULL_BASE_FROM_DOCKERHUB=$(PULL_BASE_FROM_DOCKERHUB) -e BUILD_BASE=$(BUILD_BASE) \ -e REGISTRYUSER=$(REGISTRYUSER) -e REGISTRYPASSWORD=$(REGISTRYPASSWORD) \ - -e PUSHBASEIMAGE=$(PUSHBASEIMAGE) + -e PUSHBASEIMAGE=$(PUSHBASEIMAGE) -e BUILD_PG96=$(BUILD_PG96) build_standalone_db_migrator: compile_standalone_db_migrator make -f $(MAKEFILEPATH_PHOTON)/Makefile _build_standalone_db_migrator -e BASEIMAGETAG=$(BASEIMAGETAG) -e VERSIONTAG=$(VERSIONTAG) + +build_base_docker: + if [ -n "$(REGISTRYUSER)" ] && [ -n "$(REGISTRYPASSWORD)" ] ; then \ + docker login -u $(REGISTRYUSER) -p $(REGISTRYPASSWORD) ; \ + else \ + echo "No docker credentials provided, please make sure enough priviledges to access docker hub!" ; \ + fi + @for name in $(BUILDBASETARGET); do \ + echo $$name ; \ + sleep 30 ; \ + if [ $$name == "db" ]; then \ + make _build_base_db ; \ + else \ + $(DOCKERBUILD) --build-arg BUILD_PG96=$(BUILD_PG96) --pull --no-cache -f $(MAKEFILEPATH_PHOTON)/$$name/Dockerfile.base -t $(BASEIMAGENAMESPACE)/harbor-$$name-base:$(BASEIMAGETAG) --label base-build-date=$(date +"%Y%m%d") . ; \ + fi ; \ + if [ "$(PUSHBASEIMAGE)" != "false" ] ; then \ + $(PUSHSCRIPTPATH)/$(PUSHSCRIPTNAME) $(BASEIMAGENAMESPACE)/harbor-$$name-base:$(BASEIMAGETAG) $(REGISTRYUSER) $(REGISTRYPASSWORD) || exit 1; \ + fi ; \ + done + _build_base_db: @if [ "$(BUILD_PG96)" = "true" ] ; then \ echo "build pg96 rpm package." ; \ diff --git a/VERSION b/VERSION index b1d18bc43..a6316f06b 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -v2.3.0 +v2.3.0 \ No newline at end of file diff --git a/make/photon/Makefile b/make/photon/Makefile index 24bf1a8e7..d79023c0c 100644 --- a/make/photon/Makefile +++ b/make/photon/Makefile @@ -276,15 +276,23 @@ define _build_base else \ echo "No docker credentials provided, please be aware of priviledges to access docker hub!" ; \ fi ;\ - $(DOCKERBUILD) -f $(2)/Dockerfile.base -t $(BASEIMAGENAMESPACE)/harbor-$(1)-base:$(BASEIMAGETAG) --label base-build-date=$(TIMESTAMP) . ;\ + if [ "$(1)" = "db" ] && [ "$(BUILD_PG96)" = "true" ]; then \ + echo "build pg96 rpm package." ; \ + cd $(DOCKERFILEPATH)/db && $(DOCKERFILEPATH)/db/rpm_builder.sh && cd - ; \ + $(DOCKERBUILD) --pull --no-cache -f $(DOCKERFILEPATH)/db/Dockerfile.pg96 -t $(BASEIMAGENAMESPACE)/harbor-db-base:$(BASEIMAGETAG) --label base-build-date=$(TIMESTAMP) . ; \ + else \ + $(DOCKERBUILD) -f $(2)/Dockerfile.base -t $(BASEIMAGENAMESPACE)/harbor-$(1)-base:$(BASEIMAGETAG) --label base-build-date=$(TIMESTAMP) . ;\ + fi ;\ if [ "$(PUSHBASEIMAGE)" = "true" ] ; then \ - $(PUSHSCRIPTPATH)/$(PUSHSCRIPTNAME) $(BASEIMAGENAMESPACE)/harbor-$(1)-base:$(BASEIMAGETAG) $(REGISTRYUSER) $(REGISTRYPASSWORD) $(PULL_BASE_FROM_DOCKERHUB) || exit 1; \ + $(PUSHSCRIPTPATH)/$(PUSHSCRIPTNAME) $(BASEIMAGENAMESPACE)/harbor-$(1)-base:$(BASEIMAGETAG) $(REGISTRYUSER) $(REGISTRYPASSWORD) docker.io $(PULL_BASE_FROM_DOCKERHUB) || exit 1; \ fi ; \ fi endef build: _build_prepare _build_db _build_portal _build_core _build_jobservice _build_log _build_nginx _build_registry _build_registryctl _build_notary _build_trivy_adapter _build_redis _build_chart_server _compile_and_build_exporter - + @if [ -n "$(REGISTRYUSER)" ] && [ -n "$(REGISTRYPASSWORD)" ] ; then \ + docker logout ; \ + fi cleanimage: @echo "cleaning image for photon..." - $(DOCKERRMIMAGE) -f $(DOCKERIMAGENAME_PORTAL):$(VERSIONTAG) diff --git a/make/pushimage.sh b/make/pushimage.sh index 35e3c6988..8841830e4 100755 --- a/make/pushimage.sh +++ b/make/pushimage.sh @@ -4,9 +4,9 @@ set +e set -o noglob if [ "$1" == "" ];then -echo "This shell will push specific image to registry server." -echo "Usage: #./pushimage [image tag] [registry username] [registry password] [registry server]" -exit 1 + echo "This shell will push specific image to registry server." + echo "Usage: #./pushimage [image tag] [registry username] [registry password] [registry server]" + exit 1 fi # @@ -90,7 +90,9 @@ USERNAME="$2" PASSWORD="$3" REGISTRY="$4" PULL_BASE_FROM_DOCKERHUB="$5" + set -e +set -x # ----- Pushing image(s) ----- # see documentation : @@ -99,21 +101,6 @@ set -e # - https://docs.docker.com/reference/commandline/cli/#logout # --------------------------- -# Login to the registry -h2 "Login to the Docker registry" - -DOCKER_LOGIN="docker login --username $USERNAME --password $PASSWORD $REGISTRY" -info "docker login --username $USERNAME --password *******" -DOCKER_LOGIN_OUTPUT=$($DOCKER_LOGIN) - -if [ $? -ne 0 ]; then - warn "$DOCKER_LOGIN_OUTPUT" - error "Login to Docker registry $REGISTRY failed" - exit 1 -else - success "Login to Docker registry $REGISTRY succeeded"; -fi - # Push the docker image h2 "Pushing image to Docker registry" @@ -128,22 +115,9 @@ else success "Pushing image $IMAGE succeeded"; fi -# Logout from the registry -h2 "Logout from the docker registry" -DOCKER_LOGOUT="docker logout $REGISTRY" -DOCKER_LOGOUT_OUTPUT=$($DOCKER_LOGOUT) - -if [ $? -ne 0 ]; then - warn "$DOCKER_LOGOUT_OUTPUT" - error "Logout from Docker registry $REGISTRY failed" - exit 1 -else - success "Logout from Docker registry $REGISTRY succeeded" -fi - if [ "$PULL_BASE_FROM_DOCKERHUB" == "true" ];then h2 "Remove local goharbor images" - DOCKER_RMI="docker rmi $(docker images | grep "goharbor" | awk '{print $3}') -f" + DOCKER_RMI="docker rmi -f $(docker images | grep "${IMAGE%:*}" | awk '{print $3}') -f" info "$DOCKER_RMI" DOCKER_RMI_OUTPUT=$($DOCKER_RMI) if [ $? -ne 0 ];then @@ -153,3 +127,4 @@ if [ "$PULL_BASE_FROM_DOCKERHUB" == "true" ];then success "Clean local goharbor images succeeded"; fi fi +