This is an automated email from the ASF dual-hosted git repository.

ibzib pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/beam.git


The following commit(s) were added to refs/heads/master by this push:
     new 34ce707  [BEAM-9541] Push all docker images from RC instead of 
hard-coding them.
     new 867a298  Merge pull request #13798 from ibzib/container-pull
34ce707 is described below

commit 34ce707370f2b0ff539e0ac24c84485aeb07207e
Author: Kyle Weaver <[email protected]>
AuthorDate: Fri Jan 22 17:21:02 2021 -0800

    [BEAM-9541] Push all docker images from RC instead of hard-coding them.
    
    This greatly simplifies the script. It also spares us from having to 
hard-code yet another list of supported Flink versions, which I'm trying to 
avoid. There is the minor downside that listing images requires them to be 
present locally from build_release_candidate.sh, so we can't clean them up in 
between builds. However, I don't think that was ever really necessary except to 
save disk space.
---
 .../src/main/scripts/build_release_candidate.sh    | 10 ---
 release/src/main/scripts/publish_docker_images.sh  | 87 +++-------------------
 .../site/content/en/contribute/release-guide.md    |  4 +-
 3 files changed, 13 insertions(+), 88 deletions(-)

diff --git a/release/src/main/scripts/build_release_candidate.sh 
b/release/src/main/scripts/build_release_candidate.sh
index f846e82..1c618ca 100755
--- a/release/src/main/scripts/build_release_candidate.sh
+++ b/release/src/main/scripts/build_release_candidate.sh
@@ -290,16 +290,6 @@ if [[ $confirmation = "y" ]]; then
   ./gradlew ":runners:spark:job-server:container:dockerPush" 
-Pdocker-tag="${RELEASE}_rc${RC_NUM}"
 
   rm -rf ~/${PYTHON_ARTIFACTS_DIR}
-
-  echo '-------------------Clean up images at local-----------------'
-  for ver in "${PYTHON_VER[@]}"; do
-     docker rmi -f 
${DOCKER_IMAGE_DEFAULT_REPO_ROOT}/${DOCKER_IMAGE_DEFAULT_REPO_PREFIX}${ver}_sdk:${RELEASE}_rc${RC_NUM}
-  done
-  docker rmi -f 
${DOCKER_IMAGE_DEFAULT_REPO_ROOT}/${DOCKER_IMAGE_DEFAULT_REPO_PREFIX}java_sdk:${RELEASE}_rc${RC_NUM}
-  for ver in "${FLINK_VER[@]}"; do
-    docker rmi -f 
"${DOCKER_IMAGE_DEFAULT_REPO_ROOT}/${DOCKER_IMAGE_DEFAULT_REPO_PREFIX}flink${ver}_job_server:${RELEASE}_rc${RC_NUM}"
-  done
-  docker rmi -f 
"${DOCKER_IMAGE_DEFAULT_REPO_ROOT}/${DOCKER_IMAGE_DEFAULT_REPO_PREFIX}spark_job_server:${RELEASE}_rc${RC_NUM}"
 fi
 
 echo "[Current Step]: Update beam-site"
diff --git a/release/src/main/scripts/publish_docker_images.sh 
b/release/src/main/scripts/publish_docker_images.sh
index c40e7a2..6bf013b 100755
--- a/release/src/main/scripts/publish_docker_images.sh
+++ b/release/src/main/scripts/publish_docker_images.sh
@@ -27,10 +27,6 @@ set -e
 DOCKER_IMAGE_DEFAULT_REPO_ROOT=apache
 DOCKER_IMAGE_DEFAULT_REPO_PREFIX=beam_
 
-JAVA_VER=("java8" "java11")
-PYTHON_VER=("python3.6" "python3.7" "python3.8")
-FLINK_VER=("1.8" "1.9" "1.10")
-
 echo "Publish SDK docker images to Docker Hub."
 
 echo "================Setting Up Environment Variables==========="
@@ -47,84 +43,21 @@ echo "Do you want to proceed? [y|N]"
 read confirmation
 if [[ $confirmation = "y" ]]; then
 
-  echo '-------------------Tagging and Pushing Python images-----------------'
-  for ver in "${PYTHON_VER[@]}"; do
-    # Pull verified RC from dockerhub.
-    docker pull 
${DOCKER_IMAGE_DEFAULT_REPO_ROOT}/${DOCKER_IMAGE_DEFAULT_REPO_PREFIX}${ver}_sdk:${RELEASE}_${RC_VERSION}
-
-    # Tag with ${RELEASE} and push to dockerhub.
-    docker tag 
${DOCKER_IMAGE_DEFAULT_REPO_ROOT}/${DOCKER_IMAGE_DEFAULT_REPO_PREFIX}${ver}_sdk:${RELEASE}_${RC_VERSION}
 
${DOCKER_IMAGE_DEFAULT_REPO_ROOT}/${DOCKER_IMAGE_DEFAULT_REPO_PREFIX}${ver}_sdk:${RELEASE}
-    docker push 
${DOCKER_IMAGE_DEFAULT_REPO_ROOT}/${DOCKER_IMAGE_DEFAULT_REPO_PREFIX}${ver}_sdk:${RELEASE}
-
-    # Tag with latest and push to dockerhub.
-    docker tag 
${DOCKER_IMAGE_DEFAULT_REPO_ROOT}/${DOCKER_IMAGE_DEFAULT_REPO_PREFIX}${ver}_sdk:${RELEASE}_${RC_VERSION}
 
${DOCKER_IMAGE_DEFAULT_REPO_ROOT}/${DOCKER_IMAGE_DEFAULT_REPO_PREFIX}${ver}_sdk:latest
-    docker push 
${DOCKER_IMAGE_DEFAULT_REPO_ROOT}/${DOCKER_IMAGE_DEFAULT_REPO_PREFIX}${ver}_sdk:latest
-
-    # Cleanup images from local
-    docker rmi -f 
${DOCKER_IMAGE_DEFAULT_REPO_ROOT}/${DOCKER_IMAGE_DEFAULT_REPO_PREFIX}${ver}_sdk:${RELEASE}_${RC_VERSION}
-    docker rmi -f 
${DOCKER_IMAGE_DEFAULT_REPO_ROOT}/${DOCKER_IMAGE_DEFAULT_REPO_PREFIX}${ver}_sdk:${RELEASE}
-    docker rmi -f 
${DOCKER_IMAGE_DEFAULT_REPO_ROOT}/${DOCKER_IMAGE_DEFAULT_REPO_PREFIX}${ver}_sdk:latest
-  done
-
-  echo '-------------------Tagging and Pushing Java images-----------------'
-  for ver in "${JAVA_VER[@]}"; do
-    # Pull verified RC from dockerhub.
-    docker pull 
${DOCKER_IMAGE_DEFAULT_REPO_ROOT}/${DOCKER_IMAGE_DEFAULT_REPO_PREFIX}${ver}_sdk:${RELEASE}_${RC_VERSION}
-
-    # Tag with ${RELEASE} and push to dockerhub.
-    docker tag 
${DOCKER_IMAGE_DEFAULT_REPO_ROOT}/${DOCKER_IMAGE_DEFAULT_REPO_PREFIX}${ver}_sdk:${RELEASE}_${RC_VERSION}
 
${DOCKER_IMAGE_DEFAULT_REPO_ROOT}/${DOCKER_IMAGE_DEFAULT_REPO_PREFIX}${ver}_sdk:${RELEASE}
-    docker push 
${DOCKER_IMAGE_DEFAULT_REPO_ROOT}/${DOCKER_IMAGE_DEFAULT_REPO_PREFIX}${ver}_sdk:${RELEASE}
-
-    # Tag with latest and push to dockerhub.
-    docker tag 
${DOCKER_IMAGE_DEFAULT_REPO_ROOT}/${DOCKER_IMAGE_DEFAULT_REPO_PREFIX}${ver}_sdk:${RELEASE}_${RC_VERSION}
 
${DOCKER_IMAGE_DEFAULT_REPO_ROOT}/${DOCKER_IMAGE_DEFAULT_REPO_PREFIX}${ver}_sdk:latest
-    docker push 
${DOCKER_IMAGE_DEFAULT_REPO_ROOT}/${DOCKER_IMAGE_DEFAULT_REPO_PREFIX}${ver}_sdk:latest
-
-    # Cleanup images from local
-    docker rmi -f 
${DOCKER_IMAGE_DEFAULT_REPO_ROOT}/${DOCKER_IMAGE_DEFAULT_REPO_PREFIX}${ver}_sdk:${RELEASE}_${RC_VERSION}
-    docker rmi -f 
${DOCKER_IMAGE_DEFAULT_REPO_ROOT}/${DOCKER_IMAGE_DEFAULT_REPO_PREFIX}${ver}_sdk:${RELEASE}
-    docker rmi -f 
${DOCKER_IMAGE_DEFAULT_REPO_ROOT}/${DOCKER_IMAGE_DEFAULT_REPO_PREFIX}${ver}_sdk:latest
-  done
-
-  echo '-------------Tagging and Pushing Flink job server images-------------'
-  echo "Publishing images for the following Flink versions:" "${FLINK_VER[@]}"
-  echo "Make sure the versions are correct, then press any key to proceed."
+  IMAGES=$(docker images --filter 
"reference=apache/beam_*:${RELEASE}_${RC_VERSION}" --format "{{.Repository}}")
+  echo "Publishing the following images:" "${IMAGES[@]}"
+  echo "Make sure the images are correct, then press any key to proceed."
   read
-  for ver in "${FLINK_VER[@]}"; do
-    
FLINK_IMAGE_NAME=${DOCKER_IMAGE_DEFAULT_REPO_ROOT}/${DOCKER_IMAGE_DEFAULT_REPO_PREFIX}flink${ver}_job_server
-
+  for IMAGE in "${IMAGES[@]}"; do
     # Pull verified RC from dockerhub.
-    docker pull "${FLINK_IMAGE_NAME}:${RELEASE}_${RC_VERSION}"
+    docker pull ${IMAGE}:${RELEASE}_${RC_VERSION}
 
     # Tag with ${RELEASE} and push to dockerhub.
-    docker tag "${FLINK_IMAGE_NAME}:${RELEASE}_${RC_VERSION}" 
"${FLINK_IMAGE_NAME}:${RELEASE}"
-    docker push "${FLINK_IMAGE_NAME}:${RELEASE}"
+    docker tag ${IMAGE}:${RELEASE}_${RC_VERSION} ${IMAGE}:${RELEASE}
+    docker push ${IMAGE}:${RELEASE}
 
     # Tag with latest and push to dockerhub.
-    docker tag "${FLINK_IMAGE_NAME}:${RELEASE}_${RC_VERSION}" 
"${FLINK_IMAGE_NAME}:latest"
-    docker push "${FLINK_IMAGE_NAME}:latest"
-
-    # Cleanup images from local
-    docker rmi -f "${FLINK_IMAGE_NAME}:${RELEASE}_${RC_VERSION}"
-    docker rmi -f "${FLINK_IMAGE_NAME}:${RELEASE}"
-    docker rmi -f "${FLINK_IMAGE_NAME}:latest"
+    docker tag ${IMAGE}:${RELEASE}_${RC_VERSION} ${IMAGE}:latest
+    docker push ${IMAGE}:latest
   done
 
-  echo '-------------Tagging and Pushing Spark job server image-------------'
-  
SPARK_IMAGE_NAME=${DOCKER_IMAGE_DEFAULT_REPO_ROOT}/${DOCKER_IMAGE_DEFAULT_REPO_PREFIX}spark_job_server
-
-  # Pull verified RC from dockerhub.
-  docker pull "${SPARK_IMAGE_NAME}:${RELEASE}_${RC_VERSION}"
-
-  # Tag with ${RELEASE} and push to dockerhub.
-  docker tag "${SPARK_IMAGE_NAME}:${RELEASE}_${RC_VERSION}" 
"${SPARK_IMAGE_NAME}:${RELEASE}"
-  docker push "${SPARK_IMAGE_NAME}:${RELEASE}"
-
-  # Tag with latest and push to dockerhub.
-  docker tag "${SPARK_IMAGE_NAME}:${RELEASE}_${RC_VERSION}" 
"${SPARK_IMAGE_NAME}:latest"
-  docker push "${SPARK_IMAGE_NAME}:latest"
-
-  # Cleanup images from local
-  docker rmi -f "${SPARK_IMAGE_NAME}:${RELEASE}_${RC_VERSION}"
-  docker rmi -f "${SPARK_IMAGE_NAME}:${RELEASE}"
-  docker rmi -f "${SPARK_IMAGE_NAME}:latest"
-fi
+fi
\ No newline at end of file
diff --git a/website/www/site/content/en/contribute/release-guide.md 
b/website/www/site/content/en/contribute/release-guide.md
index 4ef7596..6f8ab5c 100644
--- a/website/www/site/content/en/contribute/release-guide.md
+++ b/website/www/site/content/en/contribute/release-guide.md
@@ -1089,7 +1089,7 @@ please follow [the 
guide](https://help.github.com/articles/creating-a-personal-a
 All wheels should be published, in addition to the zip of the release source.
 (Signatures and hashes do _not_ need to be uploaded.)
 
-### Deploy SDK docker images to DockerHub
+### Deploy docker images to DockerHub
 * Script: 
[publish_docker_images.sh](https://github.com/apache/beam/blob/master/release/src/main/scripts/publish_docker_images.sh)
 * Usage
 ```
@@ -1100,6 +1100,8 @@ Verify that:
 * Images with *latest* tag are pointing to current release by confirming
   1. Digest of the image with *latest* tag is the same as the one with 
{RELEASE} tag.
 
+(Optional) Clean up any unneeded local images afterward to save disk space.
+
 ### Merge Website pull requests
 
 Merge all of the website pull requests

Reply via email to