You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flink.apache.org by ch...@apache.org on 2020/04/30 07:47:36 UTC

[flink-docker] 01/01: [FLINK-17439] Fork dev-master branch

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

chesnay pushed a commit to branch dev-master
in repository https://gitbox.apache.org/repos/asf/flink-docker.git

commit dfdb81f4ef8b86db0c0d6e2d62a6920765d64efd
Author: Chesnay Schepler <ch...@apache.org>
AuthorDate: Tue Apr 28 14:19:55 2020 +0200

    [FLINK-17439] Fork dev-master branch
    
    - remove .asf.yaml, we only need it in the master branch
    - remove generated Dockerfiles,we can now generate them during CI instead
    - remove README.md, the master README.md will contain all necessary information
    - remove stackbrew generators, only relevant for releases and will be retained on master
    - remove testing_lib.sh#smoke_test_one_image, now redundant
    - deduplicate testing_lib#sh#smoke_test_all_images and #smoke_test_non_root
---
 .asf.yaml                                   |  10 --
 1.10/scala_2.11-debian/Dockerfile           |  87 --------------
 1.10/scala_2.11-debian/docker-entrypoint.sh | 114 -------------------
 1.10/scala_2.12-debian/Dockerfile           |  87 --------------
 1.10/scala_2.12-debian/docker-entrypoint.sh | 114 -------------------
 1.9/scala_2.11-debian/Dockerfile            |  87 --------------
 1.9/scala_2.11-debian/docker-entrypoint.sh  | 114 -------------------
 1.9/scala_2.12-debian/Dockerfile            |  87 --------------
 1.9/scala_2.12-debian/docker-entrypoint.sh  | 114 -------------------
 README.md                                   | 121 --------------------
 generate-stackbrew-library-docker.sh        |   6 -
 generate-stackbrew-library.sh               | 169 ----------------------------
 testing/run_travis_tests.sh                 |   7 +-
 testing/testing_lib.sh                      |  79 +++----------
 14 files changed, 22 insertions(+), 1174 deletions(-)

diff --git a/.asf.yaml b/.asf.yaml
deleted file mode 100644
index 867d33f..0000000
--- a/.asf.yaml
+++ /dev/null
@@ -1,10 +0,0 @@
-github:
-  description: "Docker packaging for Apache Flink"
-  homepage: https://flink.apache.org/
-  labels:
-    - flink
-    - docker
-  enabled_merge_buttons:
-    squash: true
-    merge: false
-    rebase: true
diff --git a/1.10/scala_2.11-debian/Dockerfile b/1.10/scala_2.11-debian/Dockerfile
deleted file mode 100644
index f7b5f6d..0000000
--- a/1.10/scala_2.11-debian/Dockerfile
+++ /dev/null
@@ -1,87 +0,0 @@
-###############################################################################
-#  Licensed to the Apache Software Foundation (ASF) under one
-#  or more contributor license agreements.  See the NOTICE file
-#  distributed with this work for additional information
-#  regarding copyright ownership.  The ASF licenses this file
-#  to you under the Apache License, Version 2.0 (the
-#  "License"); you may not use this file except in compliance
-#  with the License.  You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-#  Unless required by applicable law or agreed to in writing, software
-#  distributed under the License is distributed on an "AS IS" BASIS,
-#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-#  See the License for the specific language governing permissions and
-# limitations under the License.
-###############################################################################
-
-FROM openjdk:8-jre
-
-# Install dependencies
-RUN set -ex; \
-  apt-get update; \
-  apt-get -y install libsnappy1v5 gettext-base; \
-  rm -rf /var/lib/apt/lists/*
-
-# Grab gosu for easy step-down from root
-ENV GOSU_VERSION 1.11
-RUN set -ex; \
-  wget -nv -O /usr/local/bin/gosu "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$(dpkg --print-architecture)"; \
-  wget -nv -O /usr/local/bin/gosu.asc "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$(dpkg --print-architecture).asc"; \
-  export GNUPGHOME="$(mktemp -d)"; \
-  for server in ha.pool.sks-keyservers.net $(shuf -e \
-                          hkp://p80.pool.sks-keyservers.net:80 \
-                          keyserver.ubuntu.com \
-                          hkp://keyserver.ubuntu.com:80 \
-                          pgp.mit.edu) ; do \
-      gpg --batch --keyserver "$server" --recv-keys B42F6819007F00F88E364FD4036A9C25BF357DD4 && break || : ; \
-  done && \
-  gpg --batch --verify /usr/local/bin/gosu.asc /usr/local/bin/gosu; \
-  gpgconf --kill all; \
-  rm -rf "$GNUPGHOME" /usr/local/bin/gosu.asc; \
-  chmod +x /usr/local/bin/gosu; \
-  gosu nobody true
-
-# Configure Flink version
-ENV FLINK_TGZ_URL=https://www.apache.org/dyn/closer.cgi?action=download&filename=flink/flink-1.10.0/flink-1.10.0-bin-scala_2.11.tgz \
-    FLINK_ASC_URL=https://www.apache.org/dist/flink/flink-1.10.0/flink-1.10.0-bin-scala_2.11.tgz.asc \
-    GPG_KEY=BB137807CEFBE7DD2616556710B12A1F89C115E8 \
-    SKIP_GPG=false
-
-# Prepare environment
-ENV FLINK_HOME=/opt/flink
-ENV PATH=$FLINK_HOME/bin:$PATH
-RUN groupadd --system --gid=9999 flink && \
-    useradd --system --home-dir $FLINK_HOME --uid=9999 --gid=flink flink
-WORKDIR $FLINK_HOME
-
-# Install Flink
-RUN set -ex; \
-  wget -nv -O flink.tgz "$FLINK_TGZ_URL"; \
-  \
-  if [ "$SKIP_GPG" = "false" ]; then \
-    wget -nv -O flink.tgz.asc "$FLINK_ASC_URL"; \
-    export GNUPGHOME="$(mktemp -d)"; \
-    for server in ha.pool.sks-keyservers.net $(shuf -e \
-                            hkp://p80.pool.sks-keyservers.net:80 \
-                            keyserver.ubuntu.com \
-                            hkp://keyserver.ubuntu.com:80 \
-                            pgp.mit.edu) ; do \
-        gpg --batch --keyserver "$server" --recv-keys "$GPG_KEY" && break || : ; \
-    done && \
-    gpg --batch --verify flink.tgz.asc flink.tgz; \
-    gpgconf --kill all; \
-    rm -rf "$GNUPGHOME" flink.tgz.asc; \
-  fi; \
-  \
-  tar -xf flink.tgz --strip-components=1; \
-  rm flink.tgz; \
-  \
-  chown -R flink:flink .;
-
-# Configure container
-COPY docker-entrypoint.sh /
-ENTRYPOINT ["/docker-entrypoint.sh"]
-EXPOSE 6123 8081
-CMD ["help"]
diff --git a/1.10/scala_2.11-debian/docker-entrypoint.sh b/1.10/scala_2.11-debian/docker-entrypoint.sh
deleted file mode 100755
index 011ccea..0000000
--- a/1.10/scala_2.11-debian/docker-entrypoint.sh
+++ /dev/null
@@ -1,114 +0,0 @@
-#!/bin/sh
-
-###############################################################################
-#  Licensed to the Apache Software Foundation (ASF) under one
-#  or more contributor license agreements.  See the NOTICE file
-#  distributed with this work for additional information
-#  regarding copyright ownership.  The ASF licenses this file
-#  to you under the Apache License, Version 2.0 (the
-#  "License"); you may not use this file except in compliance
-#  with the License.  You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-#  Unless required by applicable law or agreed to in writing, software
-#  distributed under the License is distributed on an "AS IS" BASIS,
-#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-#  See the License for the specific language governing permissions and
-# limitations under the License.
-###############################################################################
-
-# If unspecified, the hostname of the container is taken as the JobManager address
-JOB_MANAGER_RPC_ADDRESS=${JOB_MANAGER_RPC_ADDRESS:-$(hostname -f)}
-CONF_FILE="${FLINK_HOME}/conf/flink-conf.yaml"
-
-drop_privs_cmd() {
-    if [ $(id -u) != 0 ]; then
-        # Don't need to drop privs if EUID != 0
-        return
-    elif [ -x /sbin/su-exec ]; then
-        # Alpine
-        echo su-exec flink
-    else
-        # Others
-        echo gosu flink
-    fi
-}
-
-copy_plugins_if_required() {
-  if [ -z "$ENABLE_BUILT_IN_PLUGINS" ]; then
-    return 0
-  fi
-
-  echo "Enabling required built-in plugins"
-  for target_plugin in $(echo "$ENABLE_BUILT_IN_PLUGINS" | tr ';' ' '); do
-    echo "Linking ${target_plugin} to plugin directory"
-    plugin_name=${target_plugin%.jar}
-
-    mkdir -p "${FLINK_HOME}/plugins/${plugin_name}"
-    if [ ! -e "${FLINK_HOME}/opt/${target_plugin}" ]; then
-      echo "Plugin ${target_plugin} does not exist. Exiting."
-      exit 1
-    else
-      ln -fs "${FLINK_HOME}/opt/${target_plugin}" "${FLINK_HOME}/plugins/${plugin_name}"
-      echo "Successfully enabled ${target_plugin}"
-    fi
-  done
-}
-
-set_config_option() {
-  local option=$1
-  local value=$2
-
-  # escape periods for usage in regular expressions
-  local escaped_option=$(echo ${option} | sed -e "s/\./\\\./g")
-
-  # either override an existing entry, or append a new one
-  if grep -E "^${escaped_option}:.*" "${CONF_FILE}" > /dev/null; then
-        sed -i -e "s/${escaped_option}:.*/$option: $value/g" "${CONF_FILE}"
-  else
-        echo "${option}: ${value}" >> "${CONF_FILE}"
-  fi
-}
-
-set_common_options() {
-    set_config_option jobmanager.rpc.address ${JOB_MANAGER_RPC_ADDRESS}
-    set_config_option blob.server.port 6124
-    set_config_option query.server.port 6125
-}
-
-if [ "$1" = "help" ]; then
-    echo "Usage: $(basename "$0") (jobmanager|taskmanager|help)"
-    exit 0
-elif [ "$1" = "jobmanager" ]; then
-    shift 1
-    echo "Starting Job Manager"
-    copy_plugins_if_required
-
-    set_common_options
-
-    if [ -n "${FLINK_PROPERTIES}" ]; then
-        echo "${FLINK_PROPERTIES}" >> "${CONF_FILE}"
-    fi
-    envsubst < "${CONF_FILE}" > "${CONF_FILE}.tmp" && mv "${CONF_FILE}.tmp" "${CONF_FILE}"
-
-    exec $(drop_privs_cmd) "$FLINK_HOME/bin/jobmanager.sh" start-foreground "$@"
-elif [ "$1" = "taskmanager" ]; then
-    shift 1
-    echo "Starting Task Manager"
-    copy_plugins_if_required
-
-    TASK_MANAGER_NUMBER_OF_TASK_SLOTS=${TASK_MANAGER_NUMBER_OF_TASK_SLOTS:-$(grep -c ^processor /proc/cpuinfo)}
-
-    set_common_options
-    set_config_option taskmanager.numberOfTaskSlots ${TASK_MANAGER_NUMBER_OF_TASK_SLOTS}
-
-    if [ -n "${FLINK_PROPERTIES}" ]; then
-        echo "${FLINK_PROPERTIES}" >> "${CONF_FILE}"
-    fi
-    envsubst < "${CONF_FILE}" > "${CONF_FILE}.tmp" && mv "${CONF_FILE}.tmp" "${CONF_FILE}"
-
-    exec $(drop_privs_cmd) "$FLINK_HOME/bin/taskmanager.sh" start-foreground "$@"
-fi
-
-exec "$@"
diff --git a/1.10/scala_2.12-debian/Dockerfile b/1.10/scala_2.12-debian/Dockerfile
deleted file mode 100644
index cf22764..0000000
--- a/1.10/scala_2.12-debian/Dockerfile
+++ /dev/null
@@ -1,87 +0,0 @@
-###############################################################################
-#  Licensed to the Apache Software Foundation (ASF) under one
-#  or more contributor license agreements.  See the NOTICE file
-#  distributed with this work for additional information
-#  regarding copyright ownership.  The ASF licenses this file
-#  to you under the Apache License, Version 2.0 (the
-#  "License"); you may not use this file except in compliance
-#  with the License.  You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-#  Unless required by applicable law or agreed to in writing, software
-#  distributed under the License is distributed on an "AS IS" BASIS,
-#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-#  See the License for the specific language governing permissions and
-# limitations under the License.
-###############################################################################
-
-FROM openjdk:8-jre
-
-# Install dependencies
-RUN set -ex; \
-  apt-get update; \
-  apt-get -y install libsnappy1v5 gettext-base; \
-  rm -rf /var/lib/apt/lists/*
-
-# Grab gosu for easy step-down from root
-ENV GOSU_VERSION 1.11
-RUN set -ex; \
-  wget -nv -O /usr/local/bin/gosu "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$(dpkg --print-architecture)"; \
-  wget -nv -O /usr/local/bin/gosu.asc "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$(dpkg --print-architecture).asc"; \
-  export GNUPGHOME="$(mktemp -d)"; \
-  for server in ha.pool.sks-keyservers.net $(shuf -e \
-                          hkp://p80.pool.sks-keyservers.net:80 \
-                          keyserver.ubuntu.com \
-                          hkp://keyserver.ubuntu.com:80 \
-                          pgp.mit.edu) ; do \
-      gpg --batch --keyserver "$server" --recv-keys B42F6819007F00F88E364FD4036A9C25BF357DD4 && break || : ; \
-  done && \
-  gpg --batch --verify /usr/local/bin/gosu.asc /usr/local/bin/gosu; \
-  gpgconf --kill all; \
-  rm -rf "$GNUPGHOME" /usr/local/bin/gosu.asc; \
-  chmod +x /usr/local/bin/gosu; \
-  gosu nobody true
-
-# Configure Flink version
-ENV FLINK_TGZ_URL=https://www.apache.org/dyn/closer.cgi?action=download&filename=flink/flink-1.10.0/flink-1.10.0-bin-scala_2.12.tgz \
-    FLINK_ASC_URL=https://www.apache.org/dist/flink/flink-1.10.0/flink-1.10.0-bin-scala_2.12.tgz.asc \
-    GPG_KEY=BB137807CEFBE7DD2616556710B12A1F89C115E8 \
-    SKIP_GPG=false
-
-# Prepare environment
-ENV FLINK_HOME=/opt/flink
-ENV PATH=$FLINK_HOME/bin:$PATH
-RUN groupadd --system --gid=9999 flink && \
-    useradd --system --home-dir $FLINK_HOME --uid=9999 --gid=flink flink
-WORKDIR $FLINK_HOME
-
-# Install Flink
-RUN set -ex; \
-  wget -nv -O flink.tgz "$FLINK_TGZ_URL"; \
-  \
-  if [ "$SKIP_GPG" = "false" ]; then \
-    wget -nv -O flink.tgz.asc "$FLINK_ASC_URL"; \
-    export GNUPGHOME="$(mktemp -d)"; \
-    for server in ha.pool.sks-keyservers.net $(shuf -e \
-                            hkp://p80.pool.sks-keyservers.net:80 \
-                            keyserver.ubuntu.com \
-                            hkp://keyserver.ubuntu.com:80 \
-                            pgp.mit.edu) ; do \
-        gpg --batch --keyserver "$server" --recv-keys "$GPG_KEY" && break || : ; \
-    done && \
-    gpg --batch --verify flink.tgz.asc flink.tgz; \
-    gpgconf --kill all; \
-    rm -rf "$GNUPGHOME" flink.tgz.asc; \
-  fi; \
-  \
-  tar -xf flink.tgz --strip-components=1; \
-  rm flink.tgz; \
-  \
-  chown -R flink:flink .;
-
-# Configure container
-COPY docker-entrypoint.sh /
-ENTRYPOINT ["/docker-entrypoint.sh"]
-EXPOSE 6123 8081
-CMD ["help"]
diff --git a/1.10/scala_2.12-debian/docker-entrypoint.sh b/1.10/scala_2.12-debian/docker-entrypoint.sh
deleted file mode 100755
index 011ccea..0000000
--- a/1.10/scala_2.12-debian/docker-entrypoint.sh
+++ /dev/null
@@ -1,114 +0,0 @@
-#!/bin/sh
-
-###############################################################################
-#  Licensed to the Apache Software Foundation (ASF) under one
-#  or more contributor license agreements.  See the NOTICE file
-#  distributed with this work for additional information
-#  regarding copyright ownership.  The ASF licenses this file
-#  to you under the Apache License, Version 2.0 (the
-#  "License"); you may not use this file except in compliance
-#  with the License.  You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-#  Unless required by applicable law or agreed to in writing, software
-#  distributed under the License is distributed on an "AS IS" BASIS,
-#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-#  See the License for the specific language governing permissions and
-# limitations under the License.
-###############################################################################
-
-# If unspecified, the hostname of the container is taken as the JobManager address
-JOB_MANAGER_RPC_ADDRESS=${JOB_MANAGER_RPC_ADDRESS:-$(hostname -f)}
-CONF_FILE="${FLINK_HOME}/conf/flink-conf.yaml"
-
-drop_privs_cmd() {
-    if [ $(id -u) != 0 ]; then
-        # Don't need to drop privs if EUID != 0
-        return
-    elif [ -x /sbin/su-exec ]; then
-        # Alpine
-        echo su-exec flink
-    else
-        # Others
-        echo gosu flink
-    fi
-}
-
-copy_plugins_if_required() {
-  if [ -z "$ENABLE_BUILT_IN_PLUGINS" ]; then
-    return 0
-  fi
-
-  echo "Enabling required built-in plugins"
-  for target_plugin in $(echo "$ENABLE_BUILT_IN_PLUGINS" | tr ';' ' '); do
-    echo "Linking ${target_plugin} to plugin directory"
-    plugin_name=${target_plugin%.jar}
-
-    mkdir -p "${FLINK_HOME}/plugins/${plugin_name}"
-    if [ ! -e "${FLINK_HOME}/opt/${target_plugin}" ]; then
-      echo "Plugin ${target_plugin} does not exist. Exiting."
-      exit 1
-    else
-      ln -fs "${FLINK_HOME}/opt/${target_plugin}" "${FLINK_HOME}/plugins/${plugin_name}"
-      echo "Successfully enabled ${target_plugin}"
-    fi
-  done
-}
-
-set_config_option() {
-  local option=$1
-  local value=$2
-
-  # escape periods for usage in regular expressions
-  local escaped_option=$(echo ${option} | sed -e "s/\./\\\./g")
-
-  # either override an existing entry, or append a new one
-  if grep -E "^${escaped_option}:.*" "${CONF_FILE}" > /dev/null; then
-        sed -i -e "s/${escaped_option}:.*/$option: $value/g" "${CONF_FILE}"
-  else
-        echo "${option}: ${value}" >> "${CONF_FILE}"
-  fi
-}
-
-set_common_options() {
-    set_config_option jobmanager.rpc.address ${JOB_MANAGER_RPC_ADDRESS}
-    set_config_option blob.server.port 6124
-    set_config_option query.server.port 6125
-}
-
-if [ "$1" = "help" ]; then
-    echo "Usage: $(basename "$0") (jobmanager|taskmanager|help)"
-    exit 0
-elif [ "$1" = "jobmanager" ]; then
-    shift 1
-    echo "Starting Job Manager"
-    copy_plugins_if_required
-
-    set_common_options
-
-    if [ -n "${FLINK_PROPERTIES}" ]; then
-        echo "${FLINK_PROPERTIES}" >> "${CONF_FILE}"
-    fi
-    envsubst < "${CONF_FILE}" > "${CONF_FILE}.tmp" && mv "${CONF_FILE}.tmp" "${CONF_FILE}"
-
-    exec $(drop_privs_cmd) "$FLINK_HOME/bin/jobmanager.sh" start-foreground "$@"
-elif [ "$1" = "taskmanager" ]; then
-    shift 1
-    echo "Starting Task Manager"
-    copy_plugins_if_required
-
-    TASK_MANAGER_NUMBER_OF_TASK_SLOTS=${TASK_MANAGER_NUMBER_OF_TASK_SLOTS:-$(grep -c ^processor /proc/cpuinfo)}
-
-    set_common_options
-    set_config_option taskmanager.numberOfTaskSlots ${TASK_MANAGER_NUMBER_OF_TASK_SLOTS}
-
-    if [ -n "${FLINK_PROPERTIES}" ]; then
-        echo "${FLINK_PROPERTIES}" >> "${CONF_FILE}"
-    fi
-    envsubst < "${CONF_FILE}" > "${CONF_FILE}.tmp" && mv "${CONF_FILE}.tmp" "${CONF_FILE}"
-
-    exec $(drop_privs_cmd) "$FLINK_HOME/bin/taskmanager.sh" start-foreground "$@"
-fi
-
-exec "$@"
diff --git a/1.9/scala_2.11-debian/Dockerfile b/1.9/scala_2.11-debian/Dockerfile
deleted file mode 100644
index 8f71da8..0000000
--- a/1.9/scala_2.11-debian/Dockerfile
+++ /dev/null
@@ -1,87 +0,0 @@
-###############################################################################
-#  Licensed to the Apache Software Foundation (ASF) under one
-#  or more contributor license agreements.  See the NOTICE file
-#  distributed with this work for additional information
-#  regarding copyright ownership.  The ASF licenses this file
-#  to you under the Apache License, Version 2.0 (the
-#  "License"); you may not use this file except in compliance
-#  with the License.  You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-#  Unless required by applicable law or agreed to in writing, software
-#  distributed under the License is distributed on an "AS IS" BASIS,
-#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-#  See the License for the specific language governing permissions and
-# limitations under the License.
-###############################################################################
-
-FROM openjdk:8-jre
-
-# Install dependencies
-RUN set -ex; \
-  apt-get update; \
-  apt-get -y install libsnappy1v5 gettext-base; \
-  rm -rf /var/lib/apt/lists/*
-
-# Grab gosu for easy step-down from root
-ENV GOSU_VERSION 1.11
-RUN set -ex; \
-  wget -nv -O /usr/local/bin/gosu "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$(dpkg --print-architecture)"; \
-  wget -nv -O /usr/local/bin/gosu.asc "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$(dpkg --print-architecture).asc"; \
-  export GNUPGHOME="$(mktemp -d)"; \
-  for server in ha.pool.sks-keyservers.net $(shuf -e \
-                          hkp://p80.pool.sks-keyservers.net:80 \
-                          keyserver.ubuntu.com \
-                          hkp://keyserver.ubuntu.com:80 \
-                          pgp.mit.edu) ; do \
-      gpg --batch --keyserver "$server" --recv-keys B42F6819007F00F88E364FD4036A9C25BF357DD4 && break || : ; \
-  done && \
-  gpg --batch --verify /usr/local/bin/gosu.asc /usr/local/bin/gosu; \
-  gpgconf --kill all; \
-  rm -rf "$GNUPGHOME" /usr/local/bin/gosu.asc; \
-  chmod +x /usr/local/bin/gosu; \
-  gosu nobody true
-
-# Configure Flink version
-ENV FLINK_TGZ_URL=https://www.apache.org/dyn/closer.cgi?action=download&filename=flink/flink-1.9.3/flink-1.9.3-bin-scala_2.11.tgz \
-    FLINK_ASC_URL=https://www.apache.org/dist/flink/flink-1.9.3/flink-1.9.3-bin-scala_2.11.tgz.asc \
-    GPG_KEY=6B6291A8502BA8F0913AE04DDEB95B05BF075300 \
-    SKIP_GPG=false
-
-# Prepare environment
-ENV FLINK_HOME=/opt/flink
-ENV PATH=$FLINK_HOME/bin:$PATH
-RUN groupadd --system --gid=9999 flink && \
-    useradd --system --home-dir $FLINK_HOME --uid=9999 --gid=flink flink
-WORKDIR $FLINK_HOME
-
-# Install Flink
-RUN set -ex; \
-  wget -nv -O flink.tgz "$FLINK_TGZ_URL"; \
-  \
-  if [ "$SKIP_GPG" = "false" ]; then \
-    wget -nv -O flink.tgz.asc "$FLINK_ASC_URL"; \
-    export GNUPGHOME="$(mktemp -d)"; \
-    for server in ha.pool.sks-keyservers.net $(shuf -e \
-                            hkp://p80.pool.sks-keyservers.net:80 \
-                            keyserver.ubuntu.com \
-                            hkp://keyserver.ubuntu.com:80 \
-                            pgp.mit.edu) ; do \
-        gpg --batch --keyserver "$server" --recv-keys "$GPG_KEY" && break || : ; \
-    done && \
-    gpg --batch --verify flink.tgz.asc flink.tgz; \
-    gpgconf --kill all; \
-    rm -rf "$GNUPGHOME" flink.tgz.asc; \
-  fi; \
-  \
-  tar -xf flink.tgz --strip-components=1; \
-  rm flink.tgz; \
-  \
-  chown -R flink:flink .;
-
-# Configure container
-COPY docker-entrypoint.sh /
-ENTRYPOINT ["/docker-entrypoint.sh"]
-EXPOSE 6123 8081
-CMD ["help"]
diff --git a/1.9/scala_2.11-debian/docker-entrypoint.sh b/1.9/scala_2.11-debian/docker-entrypoint.sh
deleted file mode 100755
index 011ccea..0000000
--- a/1.9/scala_2.11-debian/docker-entrypoint.sh
+++ /dev/null
@@ -1,114 +0,0 @@
-#!/bin/sh
-
-###############################################################################
-#  Licensed to the Apache Software Foundation (ASF) under one
-#  or more contributor license agreements.  See the NOTICE file
-#  distributed with this work for additional information
-#  regarding copyright ownership.  The ASF licenses this file
-#  to you under the Apache License, Version 2.0 (the
-#  "License"); you may not use this file except in compliance
-#  with the License.  You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-#  Unless required by applicable law or agreed to in writing, software
-#  distributed under the License is distributed on an "AS IS" BASIS,
-#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-#  See the License for the specific language governing permissions and
-# limitations under the License.
-###############################################################################
-
-# If unspecified, the hostname of the container is taken as the JobManager address
-JOB_MANAGER_RPC_ADDRESS=${JOB_MANAGER_RPC_ADDRESS:-$(hostname -f)}
-CONF_FILE="${FLINK_HOME}/conf/flink-conf.yaml"
-
-drop_privs_cmd() {
-    if [ $(id -u) != 0 ]; then
-        # Don't need to drop privs if EUID != 0
-        return
-    elif [ -x /sbin/su-exec ]; then
-        # Alpine
-        echo su-exec flink
-    else
-        # Others
-        echo gosu flink
-    fi
-}
-
-copy_plugins_if_required() {
-  if [ -z "$ENABLE_BUILT_IN_PLUGINS" ]; then
-    return 0
-  fi
-
-  echo "Enabling required built-in plugins"
-  for target_plugin in $(echo "$ENABLE_BUILT_IN_PLUGINS" | tr ';' ' '); do
-    echo "Linking ${target_plugin} to plugin directory"
-    plugin_name=${target_plugin%.jar}
-
-    mkdir -p "${FLINK_HOME}/plugins/${plugin_name}"
-    if [ ! -e "${FLINK_HOME}/opt/${target_plugin}" ]; then
-      echo "Plugin ${target_plugin} does not exist. Exiting."
-      exit 1
-    else
-      ln -fs "${FLINK_HOME}/opt/${target_plugin}" "${FLINK_HOME}/plugins/${plugin_name}"
-      echo "Successfully enabled ${target_plugin}"
-    fi
-  done
-}
-
-set_config_option() {
-  local option=$1
-  local value=$2
-
-  # escape periods for usage in regular expressions
-  local escaped_option=$(echo ${option} | sed -e "s/\./\\\./g")
-
-  # either override an existing entry, or append a new one
-  if grep -E "^${escaped_option}:.*" "${CONF_FILE}" > /dev/null; then
-        sed -i -e "s/${escaped_option}:.*/$option: $value/g" "${CONF_FILE}"
-  else
-        echo "${option}: ${value}" >> "${CONF_FILE}"
-  fi
-}
-
-set_common_options() {
-    set_config_option jobmanager.rpc.address ${JOB_MANAGER_RPC_ADDRESS}
-    set_config_option blob.server.port 6124
-    set_config_option query.server.port 6125
-}
-
-if [ "$1" = "help" ]; then
-    echo "Usage: $(basename "$0") (jobmanager|taskmanager|help)"
-    exit 0
-elif [ "$1" = "jobmanager" ]; then
-    shift 1
-    echo "Starting Job Manager"
-    copy_plugins_if_required
-
-    set_common_options
-
-    if [ -n "${FLINK_PROPERTIES}" ]; then
-        echo "${FLINK_PROPERTIES}" >> "${CONF_FILE}"
-    fi
-    envsubst < "${CONF_FILE}" > "${CONF_FILE}.tmp" && mv "${CONF_FILE}.tmp" "${CONF_FILE}"
-
-    exec $(drop_privs_cmd) "$FLINK_HOME/bin/jobmanager.sh" start-foreground "$@"
-elif [ "$1" = "taskmanager" ]; then
-    shift 1
-    echo "Starting Task Manager"
-    copy_plugins_if_required
-
-    TASK_MANAGER_NUMBER_OF_TASK_SLOTS=${TASK_MANAGER_NUMBER_OF_TASK_SLOTS:-$(grep -c ^processor /proc/cpuinfo)}
-
-    set_common_options
-    set_config_option taskmanager.numberOfTaskSlots ${TASK_MANAGER_NUMBER_OF_TASK_SLOTS}
-
-    if [ -n "${FLINK_PROPERTIES}" ]; then
-        echo "${FLINK_PROPERTIES}" >> "${CONF_FILE}"
-    fi
-    envsubst < "${CONF_FILE}" > "${CONF_FILE}.tmp" && mv "${CONF_FILE}.tmp" "${CONF_FILE}"
-
-    exec $(drop_privs_cmd) "$FLINK_HOME/bin/taskmanager.sh" start-foreground "$@"
-fi
-
-exec "$@"
diff --git a/1.9/scala_2.12-debian/Dockerfile b/1.9/scala_2.12-debian/Dockerfile
deleted file mode 100644
index 095e9d2..0000000
--- a/1.9/scala_2.12-debian/Dockerfile
+++ /dev/null
@@ -1,87 +0,0 @@
-###############################################################################
-#  Licensed to the Apache Software Foundation (ASF) under one
-#  or more contributor license agreements.  See the NOTICE file
-#  distributed with this work for additional information
-#  regarding copyright ownership.  The ASF licenses this file
-#  to you under the Apache License, Version 2.0 (the
-#  "License"); you may not use this file except in compliance
-#  with the License.  You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-#  Unless required by applicable law or agreed to in writing, software
-#  distributed under the License is distributed on an "AS IS" BASIS,
-#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-#  See the License for the specific language governing permissions and
-# limitations under the License.
-###############################################################################
-
-FROM openjdk:8-jre
-
-# Install dependencies
-RUN set -ex; \
-  apt-get update; \
-  apt-get -y install libsnappy1v5 gettext-base; \
-  rm -rf /var/lib/apt/lists/*
-
-# Grab gosu for easy step-down from root
-ENV GOSU_VERSION 1.11
-RUN set -ex; \
-  wget -nv -O /usr/local/bin/gosu "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$(dpkg --print-architecture)"; \
-  wget -nv -O /usr/local/bin/gosu.asc "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$(dpkg --print-architecture).asc"; \
-  export GNUPGHOME="$(mktemp -d)"; \
-  for server in ha.pool.sks-keyservers.net $(shuf -e \
-                          hkp://p80.pool.sks-keyservers.net:80 \
-                          keyserver.ubuntu.com \
-                          hkp://keyserver.ubuntu.com:80 \
-                          pgp.mit.edu) ; do \
-      gpg --batch --keyserver "$server" --recv-keys B42F6819007F00F88E364FD4036A9C25BF357DD4 && break || : ; \
-  done && \
-  gpg --batch --verify /usr/local/bin/gosu.asc /usr/local/bin/gosu; \
-  gpgconf --kill all; \
-  rm -rf "$GNUPGHOME" /usr/local/bin/gosu.asc; \
-  chmod +x /usr/local/bin/gosu; \
-  gosu nobody true
-
-# Configure Flink version
-ENV FLINK_TGZ_URL=https://www.apache.org/dyn/closer.cgi?action=download&filename=flink/flink-1.9.3/flink-1.9.3-bin-scala_2.12.tgz \
-    FLINK_ASC_URL=https://www.apache.org/dist/flink/flink-1.9.3/flink-1.9.3-bin-scala_2.12.tgz.asc \
-    GPG_KEY=6B6291A8502BA8F0913AE04DDEB95B05BF075300 \
-    SKIP_GPG=false
-
-# Prepare environment
-ENV FLINK_HOME=/opt/flink
-ENV PATH=$FLINK_HOME/bin:$PATH
-RUN groupadd --system --gid=9999 flink && \
-    useradd --system --home-dir $FLINK_HOME --uid=9999 --gid=flink flink
-WORKDIR $FLINK_HOME
-
-# Install Flink
-RUN set -ex; \
-  wget -nv -O flink.tgz "$FLINK_TGZ_URL"; \
-  \
-  if [ "$SKIP_GPG" = "false" ]; then \
-    wget -nv -O flink.tgz.asc "$FLINK_ASC_URL"; \
-    export GNUPGHOME="$(mktemp -d)"; \
-    for server in ha.pool.sks-keyservers.net $(shuf -e \
-                            hkp://p80.pool.sks-keyservers.net:80 \
-                            keyserver.ubuntu.com \
-                            hkp://keyserver.ubuntu.com:80 \
-                            pgp.mit.edu) ; do \
-        gpg --batch --keyserver "$server" --recv-keys "$GPG_KEY" && break || : ; \
-    done && \
-    gpg --batch --verify flink.tgz.asc flink.tgz; \
-    gpgconf --kill all; \
-    rm -rf "$GNUPGHOME" flink.tgz.asc; \
-  fi; \
-  \
-  tar -xf flink.tgz --strip-components=1; \
-  rm flink.tgz; \
-  \
-  chown -R flink:flink .;
-
-# Configure container
-COPY docker-entrypoint.sh /
-ENTRYPOINT ["/docker-entrypoint.sh"]
-EXPOSE 6123 8081
-CMD ["help"]
diff --git a/1.9/scala_2.12-debian/docker-entrypoint.sh b/1.9/scala_2.12-debian/docker-entrypoint.sh
deleted file mode 100755
index 011ccea..0000000
--- a/1.9/scala_2.12-debian/docker-entrypoint.sh
+++ /dev/null
@@ -1,114 +0,0 @@
-#!/bin/sh
-
-###############################################################################
-#  Licensed to the Apache Software Foundation (ASF) under one
-#  or more contributor license agreements.  See the NOTICE file
-#  distributed with this work for additional information
-#  regarding copyright ownership.  The ASF licenses this file
-#  to you under the Apache License, Version 2.0 (the
-#  "License"); you may not use this file except in compliance
-#  with the License.  You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-#  Unless required by applicable law or agreed to in writing, software
-#  distributed under the License is distributed on an "AS IS" BASIS,
-#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-#  See the License for the specific language governing permissions and
-# limitations under the License.
-###############################################################################
-
-# If unspecified, the hostname of the container is taken as the JobManager address
-JOB_MANAGER_RPC_ADDRESS=${JOB_MANAGER_RPC_ADDRESS:-$(hostname -f)}
-CONF_FILE="${FLINK_HOME}/conf/flink-conf.yaml"
-
-drop_privs_cmd() {
-    if [ $(id -u) != 0 ]; then
-        # Don't need to drop privs if EUID != 0
-        return
-    elif [ -x /sbin/su-exec ]; then
-        # Alpine
-        echo su-exec flink
-    else
-        # Others
-        echo gosu flink
-    fi
-}
-
-copy_plugins_if_required() {
-  if [ -z "$ENABLE_BUILT_IN_PLUGINS" ]; then
-    return 0
-  fi
-
-  echo "Enabling required built-in plugins"
-  for target_plugin in $(echo "$ENABLE_BUILT_IN_PLUGINS" | tr ';' ' '); do
-    echo "Linking ${target_plugin} to plugin directory"
-    plugin_name=${target_plugin%.jar}
-
-    mkdir -p "${FLINK_HOME}/plugins/${plugin_name}"
-    if [ ! -e "${FLINK_HOME}/opt/${target_plugin}" ]; then
-      echo "Plugin ${target_plugin} does not exist. Exiting."
-      exit 1
-    else
-      ln -fs "${FLINK_HOME}/opt/${target_plugin}" "${FLINK_HOME}/plugins/${plugin_name}"
-      echo "Successfully enabled ${target_plugin}"
-    fi
-  done
-}
-
-set_config_option() {
-  local option=$1
-  local value=$2
-
-  # escape periods for usage in regular expressions
-  local escaped_option=$(echo ${option} | sed -e "s/\./\\\./g")
-
-  # either override an existing entry, or append a new one
-  if grep -E "^${escaped_option}:.*" "${CONF_FILE}" > /dev/null; then
-        sed -i -e "s/${escaped_option}:.*/$option: $value/g" "${CONF_FILE}"
-  else
-        echo "${option}: ${value}" >> "${CONF_FILE}"
-  fi
-}
-
-set_common_options() {
-    set_config_option jobmanager.rpc.address ${JOB_MANAGER_RPC_ADDRESS}
-    set_config_option blob.server.port 6124
-    set_config_option query.server.port 6125
-}
-
-if [ "$1" = "help" ]; then
-    echo "Usage: $(basename "$0") (jobmanager|taskmanager|help)"
-    exit 0
-elif [ "$1" = "jobmanager" ]; then
-    shift 1
-    echo "Starting Job Manager"
-    copy_plugins_if_required
-
-    set_common_options
-
-    if [ -n "${FLINK_PROPERTIES}" ]; then
-        echo "${FLINK_PROPERTIES}" >> "${CONF_FILE}"
-    fi
-    envsubst < "${CONF_FILE}" > "${CONF_FILE}.tmp" && mv "${CONF_FILE}.tmp" "${CONF_FILE}"
-
-    exec $(drop_privs_cmd) "$FLINK_HOME/bin/jobmanager.sh" start-foreground "$@"
-elif [ "$1" = "taskmanager" ]; then
-    shift 1
-    echo "Starting Task Manager"
-    copy_plugins_if_required
-
-    TASK_MANAGER_NUMBER_OF_TASK_SLOTS=${TASK_MANAGER_NUMBER_OF_TASK_SLOTS:-$(grep -c ^processor /proc/cpuinfo)}
-
-    set_common_options
-    set_config_option taskmanager.numberOfTaskSlots ${TASK_MANAGER_NUMBER_OF_TASK_SLOTS}
-
-    if [ -n "${FLINK_PROPERTIES}" ]; then
-        echo "${FLINK_PROPERTIES}" >> "${CONF_FILE}"
-    fi
-    envsubst < "${CONF_FILE}" > "${CONF_FILE}.tmp" && mv "${CONF_FILE}.tmp" "${CONF_FILE}"
-
-    exec $(drop_privs_cmd) "$FLINK_HOME/bin/taskmanager.sh" start-foreground "$@"
-fi
-
-exec "$@"
diff --git a/README.md b/README.md
deleted file mode 100644
index ff13dd7..0000000
--- a/README.md
+++ /dev/null
@@ -1,121 +0,0 @@
-Apache Flink Docker Images
-==========================
-
-This repo contains Dockerfiles for building Docker images for Apache Flink, and are used to build
-the "official" [`flink`](https://hub.docker.com/_/flink) images hosted on Docker Hub.
-
-These Dockerfiles are maintained by the Apache Flink community, but the Docker community is
-responsible for building and hosting the images on Docker Hub.
-
-[![Build Status](https://travis-ci.org/apache/flink-docker.svg?branch=master)](https://travis-ci.org/apache/flink-docker)
-
-
-Flink Docker image lifecycle
-----------------------------
-
-* For more information about how changes in this repo are reflected on Docker Hub, see [the "An
-  image's source changed in Git, now what?" FAQ entry](
-  https://github.com/docker-library/faq#an-images-source-changed-in-git-now-what)
-* For outstanding changes to the Apache Flink images on Docker Hub, see [PRs with the
-  "library/flink" label on the `official-images` repository](
-  https://github.com/docker-library/official-images/labels/library%2Fflink)
-* For the "source of truth" for which Dockerfile and revision is reflected in the Apache Flink
-  images on Docker Hub, see [the `library/flink` file in the `official-images` repository](
-  https://github.com/docker-library/official-images/blob/master/library/flink).
-
-
-Workflow for new Flink releases
--------------------------------
-
-### Notes for new Flink minor (x.y.0) releases
-
-There are additional steps required when a new Flink minor version (x.y.0) is released.
-
-* Since only the current and previous minor versions of Flink are supported, the Dockerfiles for
-  older versions must be removed when adding the new version to this repo
-* The new images should be given the `latest` tag, so the `aliases` array in
-  `generate-stackbrew-library.sh` must be updated
-
-
-### Release workflow
-
-When a new release of Flink is available, the Dockerfiles in this repo should be updated and a new
-manifest sent to the Docker Library [`official-images`](
-https://github.com/docker-library/official-images) repo.
-
-Updating the Dockerfiles involves 3 steps:
-
-1. Update `add-version.sh` with the GPG key ID of the key used to sign the new release
-    * Commit this change with message `Add GPG key for x.y.z release` <sup>\[[example](
-      https://github.com/apache/flink-docker/commit/94845f46c0f0f2de80d4a5ce309db49aff4655d0)]</sup>
-2. Remove any existing Dockerfiles from the same minor version
-    * e.g. `rm -r 1.2`, if the new Flink version is `1.2.1`
-3. Run `add-version.sh` with the appropriate arguments (`-r flink-minor-version -f
-   flink-full-version`)
-    * e.g. `./add-version.sh -r 1.2 -f 1.2.1`
-    * Commit these changes with message `Update Dockerfiles for x.y.z release` <sup>\[[example](
-      https://github.com/apache/flink-docker/commit/5920fd775ca1a8d03ee959d79bceeb5d6e8f35a1)]</sup>
-
-A pull request can then be opened on this repo with the changes.
-
-Once the pull request has been merged, a new manifest should be generated and a pull request opened
-on the Docker Library [`official-images`](https://github.com/docker-library/official-images) repo.
-
-1. Run `./generate-stackbrew-library.sh` to output the new manifest (see note [below](
-   #stackbrew-manifest) regarding usage of this script)
-2. In a clone of the [`official-images`](https://github.com/docker-library/official-images) repo,
-   overwrite the file `library/flink` with the new manifest
-3. Commit this change with message `Update to Flink x.y.z` <sup>\[[example](
-   https://github.com/docker-library/official-images/commit/396d6cfa03c4e6b41d3ba5b7c402d7b25f1db415
-   )]</sup>
-
-A pull request can then be opened on the [`official-images`](
-https://github.com/docker-library/official-images) repo with the new manifest. <sup>\[[example](
-https://github.com/docker-library/official-images/pull/7378)]</sup>
-
-Once the pull request has been merged (often within 1 business day), the new images will be
-available shortly thereafter.
-
-
-### Release checklist
-
-- [ ] The GPG key ID of the key used to sign the release has been added to `add-version.sh` and
-      committed with the message `Add GPG key for x.y.z release`
-- [ ] _(new minor releases only)_ any unsupported Flink minor version Dockerfiles have been removed
-      (only two `x.y/` directories should be present)
-- [ ] _(new patch releases only)_ any existing generated files for the same minor version have been
-      removed
-- [ ] `./add-version.sh -r x.y -f x.y.z` has been run, and the updated Dockerfiles committed with
-      the message `Update Dockerfiles for x.y.z release`
-- [ ] _(new minor releases only)_ the `aliases` array in `generate-stackbrew-library.sh` has been
-      updated with `[x.y]='latest'` and committed with the message `Update latest image tag to x.y`
-- [ ] A pull request with the above changes has been opened on this repo and merged
-- [ ] The new library manifest has been generated with `generate-stackbrew-library.sh` and a pull
-      request opened on the `official-images` repo with commit message `Update to Flink x.y.z`
-
-
-### Stackbrew Manifest
-
-`generate-stackbrew-library.sh` is used to generate the library manifest file required for official
-Docker Hub images.
-
-When the Dockerfiles in this repo are updated, the output of this script should replace the contents
-of `library/flink` in the Docker [official-images](https://github.com/docker-library/official-images
-) repo via a pull request.
-
-Note: Since this script requires the `bashbrew` binary and a compatible version of Bash, the script
-`generate-stackbrew-library-docker.sh` can be used to invoke the script in a Docker container with
-the necessary dependencies.
-
-Example:
-
-    ./generate-stackbrew-library-docker.sh > /path/to/official-images/library/flink
-
-
-License
--------
-
-Licensed under the Apache License, Version 2.0: https://www.apache.org/licenses/LICENSE-2.0
-
-Apache Flink, Flink®, Apache®, the squirrel logo, and the Apache feather logo are either
-registered trademarks or trademarks of The Apache Software Foundation.
diff --git a/generate-stackbrew-library-docker.sh b/generate-stackbrew-library-docker.sh
deleted file mode 100755
index 7b39013..0000000
--- a/generate-stackbrew-library-docker.sh
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/bin/bash
-
-exec docker run --rm \
-    --volume "${PWD}:/build:ro" \
-    plucas/docker-flink-build \
-    /build/generate-stackbrew-library.sh
diff --git a/generate-stackbrew-library.sh b/generate-stackbrew-library.sh
deleted file mode 100755
index c0f811c..0000000
--- a/generate-stackbrew-library.sh
+++ /dev/null
@@ -1,169 +0,0 @@
-#!/bin/bash
-
-# This script generates a manifest compatibile with the expectations set forth
-# by docker-library/official-images.
-#
-# It is not compatible with the version of Bash currently shipped with OS X due
-# to the use of features introduced in Bash 4.
-
-set -eu
-
-declare -A aliases=(
-    [1.10]='latest'
-)
-
-self="$(basename "$BASH_SOURCE")"
-cd "$(dirname "$(readlink -f "$BASH_SOURCE")")"
-
-# Identify directories matching '?.?' (e.g. '1.7') and remove trailing slashes
-versions=( ?.?/ ?.??/ )
-versions=( "${versions[@]%/}" )
-
-# get the most recent commit which modified any of "$@"
-fileCommit() {
-    git log -1 --format='format:%H' HEAD -- "$@"
-}
-
-# get the most recent commit which modified "$1/Dockerfile" or any file COPY'd from "$1/Dockerfile"
-dirCommit() {
-    local dir="$1"; shift
-    (
-        cd "$dir"
-        fileCommit \
-            Dockerfile \
-            $(git show HEAD:./Dockerfile | awk '
-                toupper($1) == "COPY" {
-                    for (i = 2; i < NF; i++) {
-                        print $i
-                    }
-                }
-            ')
-    )
-}
-
-getArches() {
-    local repo="$1"; shift
-    local officialImagesUrl='https://github.com/docker-library/official-images/raw/master/library/'
-
-    eval "declare -g -A parentRepoToArches=( $(
-        find -name 'Dockerfile' -exec awk '
-                toupper($1) == "FROM" && $2 !~ /^('"$repo"'|scratch|microsoft\/[^:]+)(:|$)/ {
-                    print "'"$officialImagesUrl"'" $2
-                }
-            ' '{}' + \
-            | sort -u \
-            | xargs bashbrew cat --format '[{{ .RepoName }}:{{ .TagName }}]="{{ join " " .TagEntry.Architectures }}"'
-    ) )"
-}
-getArches 'flink'
-
-cat <<-EOH
-# this file is generated via https://github.com/apache/flink-docker/blob/$(fileCommit "$self")/$self
-
-Maintainers: Patrick Lucas <me...@patricklucas.com> (@patricklucas),
-             Ismaël Mejía <ie...@gmail.com> (@iemejia)
-GitRepo: https://github.com/apache/flink-docker.git
-EOH
-
-# prints "$2$1$3$1...$N"
-join() {
-    local sep="$1"; shift
-    local out; printf -v out "${sep//%/%%}%s" "$@"
-    echo "${out#$sep}"
-}
-
-# Sorry for the style here, but it makes the nested code easier to read
-for version in "${versions[@]}"; do
-
-# Defaults, can vary between versions
-source_variants=( debian )
-scala_versions=( 2.11 2.12 )
-
-# Version-specific variants (example)
-# if [ "$flink_release" = "x.y" ]; then
-#     scala_versions=( 2.10 2.11 2.12 )
-# fi
-
-for source_variant in "${source_variants[@]}"; do
-for scala_version in "${scala_versions[@]}"; do
-    dir="$version/scala_${scala_version}-${source_variant}"
-
-    # Not all variant combinations may exist
-    [ -f "$dir/Dockerfile" ] || continue
-
-    commit="$(dirCommit "$dir")"
-
-    # Extract the full Flink version from the Dockerfile
-    flink_version="$(git show "$commit":"$dir/Dockerfile" | awk '/ENV FLINK_VERSION=(.*) /{ split($2,a,"="); print a[2]}')"
-
-    full_version=$flink_version-scala_$scala_version
-
-    variantParent="$(awk 'toupper($1) == "FROM" { print $2 }' "$dir/Dockerfile")"
-    variantArches="${parentRepoToArches[$variantParent]}"
-
-    # Start with the full version e.g. "1.2.0-scala_2.11" and add
-    # additional tags as relevant
-    tags=( $full_version )
-
-    is_latest_version=
-    [ "$version" = "${versions[-1]}" ] && is_latest_version=1
-
-    is_latest_scala=
-    [ "$scala_version" = "${scala_versions[-1]}" ] && is_latest_scala=1
-
-    add_tags=( $version )
-
-    # Add a scala version tag to each image
-    tags=(
-        ${tags[@]}
-        ${add_tags[@]/%/-scala_$scala_version}
-    )
-
-    # If this is the latest Flink release, add a tag with only the scala version
-    if [ -n "$is_latest_version" ]; then
-        tags=(
-            ${tags[@]}
-            "scala_$scala_version"
-        )
-    fi
-
-    # For the latest supported Scala version, add tags that omit the scala version
-    if [ -n "$is_latest_scala" ]; then
-        tags=(
-            ${tags[@]}
-            $flink_version
-            $version
-        )
-    fi
-
-    # Add -$variant suffix for non-debian-based images
-    if [ "$source_variant" != "debian" ]; then
-        tags=( ${tags[@]/%/-$source_variant} )
-    fi
-
-    # Finally, designate the 'latest' tag (or '$variant', for non-debian-based images)
-    if [ -n "$is_latest_scala" ]; then
-        alias_tag="${aliases[$version]:-}"
-        if [ -n "$alias_tag" ] && [ "$source_variant" != "debian" ]; then
-            alias_tag="$source_variant"
-        fi
-
-        tags=(
-            ${tags[@]}
-            $alias_tag
-        )
-    fi
-
-    echo
-
-    # The tabs here are necessary for the heredoc to work right
-    cat <<-EOE
-		Tags: $(join ', ' "${tags[@]}")
-		Architectures: $(join ', ' $variantArches)
-		GitCommit: $commit
-		Directory: $dir
-	EOE
-
-done
-done
-done
diff --git a/testing/run_travis_tests.sh b/testing/run_travis_tests.sh
index f00890e..c790a63 100755
--- a/testing/run_travis_tests.sh
+++ b/testing/run_travis_tests.sh
@@ -19,10 +19,11 @@ if [ -n "$IS_PULL_REQUEST" ]; then
   echo
 fi
 
-if [ -z "$IS_PULL_REQUEST" ] && [ "$BRANCH" = "master" ]; then
-  # Test all images on master
+./add-custom.sh -u "https://s3.amazonaws.com/flink-nightly/flink-1.11-SNAPSHOT-bin-hadoop2.tgz"
+
+if [ -z "$IS_PULL_REQUEST" ] && [ "$BRANCH" = "dev-master" ]; then
   smoke_test_all_images
-  smoke_test_non_root
+  smoke_test_one_image_non_root
 else
   # For pull requests and branches, test one image
   smoke_test_one_image
diff --git a/testing/testing_lib.sh b/testing/testing_lib.sh
index 36dfe32..92f524d 100644
--- a/testing/testing_lib.sh
+++ b/testing/testing_lib.sh
@@ -63,26 +63,10 @@ function internal_run_jobmanager() {
     internal_run "$1" "--name jobmanager --publish 6123:6123 --publish 8081:8081 $2" jobmanager
 }
 
-function run_jobmanager() {
-    internal_run_jobmanager "$1" ""
-}
-
-function run_jobmanager_non_root() {
-    internal_run_jobmanager "$1" "--user flink"
-}
-
 function internal_run_taskmanager() {
     internal_run "$1" "--name taskmanager $2" "taskmanager"
 }
 
-function run_taskmanager() {
-  internal_run_taskmanager "$1" ""
-}
-
-function run_taskmanager_non_root() {
-  internal_run_taskmanager "$1" "--user flink"
-}
-
 function wait_for_jobmanager() {
     local dockerfile
     dockerfile="$1"
@@ -188,74 +172,47 @@ function cleanup() {
     fi
 }
 
-# For each image, run a jobmanager and taskmanager and verify they start up and connect to each
-# other successfully.
-function smoke_test_all_images() {
+function internal_smoke_test_images() {
+    local dockerfiles="$1"
+    local docker_run_command_args="$2"
+
     create_network
     trap cleanup EXIT RETURN
 
     local jobmanager_container_id
     local taskmanager_container_id
-    local dockerfiles
-    dockerfiles="$(ls ./*/*/Dockerfile)"
-
-    echo >&2 "==> Test all images"
 
     for dockerfile in $dockerfiles; do
         build_image "$dockerfile"
-        jobmanager_container_id="$(run_jobmanager "$dockerfile")"
-        taskmanager_container_id="$(run_taskmanager "$dockerfile")"
+        jobmanager_container_id="$(internal_run_jobmanager "$dockerfile" "${docker_run_command_args}")"
+        taskmanager_container_id="$(internal_run_taskmanager "$dockerfile" "${docker_run_command_args}")"
         wait_for_jobmanager "$dockerfile"
         test_image "$dockerfile"
         docker kill "$jobmanager_container_id" "$taskmanager_container_id" > /dev/null
     done
 }
 
+# For each image, run a jobmanager and taskmanager and verify they start up and connect to each
+# other successfully.
+function smoke_test_all_images() {
+    echo >&2 "==> Test all images"
+    internal_smoke_test_images "$(ls ./*/*/Dockerfile)" ""
+}
+
 # Same as smoke_test_all_images, but test only the last image alphabetically (presumed to be the
 # most recent).
 function smoke_test_one_image() {
-    create_network
-    trap cleanup EXIT RETURN
-
-    local jobmanager_container_id
-    local taskmanager_container_id
-    local dockerfiles
-    dockerfiles="$dockerfiles $(ls ./*/*/Dockerfile | tail -n 1)"
-
     echo >&2 "==> Test one image"
-
-    for dockerfile in $dockerfiles; do
-        build_image "$dockerfile"
-        jobmanager_container_id="$(run_jobmanager "$dockerfile")"
-        taskmanager_container_id="$(run_taskmanager "$dockerfile")"
-        wait_for_jobmanager "$dockerfile"
-        test_image "$dockerfile"
-        docker kill "$jobmanager_container_id" "$taskmanager_container_id" > /dev/null
-    done
+    internal_smoke_test_images "$(ls ./*/*/Dockerfile | tail -n 1)" ""
 }
 
 # Similar to smoke_test_one_image, but test one debian image and one alpine image running as a
 # non-root user.
-function smoke_test_non_root() {
-    create_network
-    trap cleanup EXIT RETURN
-
-    local jobmanager_container_id
-    local taskmanager_container_id
-    local dockerfiles
-    dockerfiles="$dockerfiles $(ls ./*/*-debian/Dockerfile | tail -n 1)"
-    dockerfiles="$dockerfiles $(ls ./*/*-alpine/Dockerfile | tail -n 1)"
-
+function smoke_test_one_image_non_root() {
     echo >&2 "==> Test images running as non-root"
-
-    for dockerfile in $dockerfiles; do
-        build_image "$dockerfile"
-        jobmanager_container_id="$(run_jobmanager_non_root "$dockerfile")"
-        taskmanager_container_id="$(run_taskmanager_non_root "$dockerfile")"
-        wait_for_jobmanager "$dockerfile"
-        test_image "$dockerfile"
-        docker kill "$jobmanager_container_id" "$taskmanager_container_id" > /dev/null
-    done
+    local dockerfiles="$dockerfiles $(ls ./*/*-debian/Dockerfile | tail -n 1)"
+    dockerfiles="$dockerfiles $(ls ./*/*-alpine/Dockerfile | tail -n 1)"
+    internal_smoke_test_images "$dockerfiles" "--user flink"
 }
 
 # vim: ts=4 sw=4 et