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.
-
-[](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