This is an automated email from the ASF dual-hosted git repository.
godfrey pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/flink-docker.git
The following commit(s) were added to refs/heads/master by this push:
new fb05222 Update Dockerfiles for 1.11.4 release
fb05222 is described below
commit fb05222de8e539d07663681053529b05e0452b46
Author: godfrey he <[email protected]>
AuthorDate: Fri Aug 6 10:40:30 2021 +0800
Update Dockerfiles for 1.11.4 release
This closes #86
---
1.11/scala_2.11-java11-debian/Dockerfile | 87 ++++++++++++++
1.11/scala_2.11-java11-debian/docker-entrypoint.sh | 125 +++++++++++++++++++++
1.11/scala_2.11-java11-debian/release.metadata | 2 +
1.11/scala_2.11-java8-debian/Dockerfile | 87 ++++++++++++++
1.11/scala_2.11-java8-debian/docker-entrypoint.sh | 125 +++++++++++++++++++++
1.11/scala_2.11-java8-debian/release.metadata | 2 +
1.11/scala_2.12-java11-debian/Dockerfile | 87 ++++++++++++++
1.11/scala_2.12-java11-debian/docker-entrypoint.sh | 125 +++++++++++++++++++++
1.11/scala_2.12-java11-debian/release.metadata | 2 +
1.11/scala_2.12-java8-debian/Dockerfile | 87 ++++++++++++++
1.11/scala_2.12-java8-debian/docker-entrypoint.sh | 125 +++++++++++++++++++++
1.11/scala_2.12-java8-debian/release.metadata | 2 +
12 files changed, 856 insertions(+)
diff --git a/1.11/scala_2.11-java11-debian/Dockerfile
b/1.11/scala_2.11-java11-debian/Dockerfile
new file mode 100644
index 0000000..5f27f6a
--- /dev/null
+++ b/1.11/scala_2.11-java11-debian/Dockerfile
@@ -0,0 +1,87 @@
+###############################################################################
+# 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:11-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.11.4/flink-1.11.4-bin-scala_2.11.tgz
\
+
FLINK_ASC_URL=https://www.apache.org/dist/flink/flink-1.11.4/flink-1.11.4-bin-scala_2.11.tgz.asc
\
+ GPG_KEY=4A978875E56AA2100EB0CF12A244D52CF0A40279 \
+ CHECK_GPG=true
+
+# 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 [ "$CHECK_GPG" = "true" ]; 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.11/scala_2.11-java11-debian/docker-entrypoint.sh
b/1.11/scala_2.11-java11-debian/docker-entrypoint.sh
new file mode 100755
index 0000000..6084f06
--- /dev/null
+++ b/1.11/scala_2.11-java11-debian/docker-entrypoint.sh
@@ -0,0 +1,125 @@
+#!/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.
+###############################################################################
+
+COMMAND_STANDALONE="standalone-job"
+
+# 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
+}
+
+prepare_job_manager_start() {
+ 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}"
+}
+
+if [ "$1" = "help" ]; then
+ echo "Usage: $(basename "$0")
(jobmanager|${COMMAND_STANDALONE}|taskmanager|help)"
+ exit 0
+elif [ "$1" = "jobmanager" ]; then
+ shift 1
+ prepare_job_manager_start
+
+ exec $(drop_privs_cmd) "$FLINK_HOME/bin/jobmanager.sh" start-foreground
"$@"
+elif [ "$1" = ${COMMAND_STANDALONE} ]; then
+ shift 1
+ prepare_job_manager_start
+
+ exec $(drop_privs_cmd) "$FLINK_HOME/bin/standalone-job.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.11/scala_2.11-java11-debian/release.metadata
b/1.11/scala_2.11-java11-debian/release.metadata
new file mode 100644
index 0000000..9fe9d15
--- /dev/null
+++ b/1.11/scala_2.11-java11-debian/release.metadata
@@ -0,0 +1,2 @@
+Tags: 1.11.4-scala_2.11-java11, 1.11-scala_2.11-java11, scala_2.11-java11
+Architectures: amd64
diff --git a/1.11/scala_2.11-java8-debian/Dockerfile
b/1.11/scala_2.11-java8-debian/Dockerfile
new file mode 100644
index 0000000..1dbcb6c
--- /dev/null
+++ b/1.11/scala_2.11-java8-debian/Dockerfile
@@ -0,0 +1,87 @@
+###############################################################################
+# 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.11.4/flink-1.11.4-bin-scala_2.11.tgz
\
+
FLINK_ASC_URL=https://www.apache.org/dist/flink/flink-1.11.4/flink-1.11.4-bin-scala_2.11.tgz.asc
\
+ GPG_KEY=4A978875E56AA2100EB0CF12A244D52CF0A40279 \
+ CHECK_GPG=true
+
+# 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 [ "$CHECK_GPG" = "true" ]; 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.11/scala_2.11-java8-debian/docker-entrypoint.sh
b/1.11/scala_2.11-java8-debian/docker-entrypoint.sh
new file mode 100755
index 0000000..6084f06
--- /dev/null
+++ b/1.11/scala_2.11-java8-debian/docker-entrypoint.sh
@@ -0,0 +1,125 @@
+#!/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.
+###############################################################################
+
+COMMAND_STANDALONE="standalone-job"
+
+# 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
+}
+
+prepare_job_manager_start() {
+ 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}"
+}
+
+if [ "$1" = "help" ]; then
+ echo "Usage: $(basename "$0")
(jobmanager|${COMMAND_STANDALONE}|taskmanager|help)"
+ exit 0
+elif [ "$1" = "jobmanager" ]; then
+ shift 1
+ prepare_job_manager_start
+
+ exec $(drop_privs_cmd) "$FLINK_HOME/bin/jobmanager.sh" start-foreground
"$@"
+elif [ "$1" = ${COMMAND_STANDALONE} ]; then
+ shift 1
+ prepare_job_manager_start
+
+ exec $(drop_privs_cmd) "$FLINK_HOME/bin/standalone-job.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.11/scala_2.11-java8-debian/release.metadata
b/1.11/scala_2.11-java8-debian/release.metadata
new file mode 100644
index 0000000..c3e4b01
--- /dev/null
+++ b/1.11/scala_2.11-java8-debian/release.metadata
@@ -0,0 +1,2 @@
+Tags: 1.11.4-scala_2.11-java8, 1.11-scala_2.11-java8, scala_2.11-java8,
1.11.4-scala_2.11, 1.11-scala_2.11, scala_2.11
+Architectures: amd64
diff --git a/1.11/scala_2.12-java11-debian/Dockerfile
b/1.11/scala_2.12-java11-debian/Dockerfile
new file mode 100644
index 0000000..e6d0cc7
--- /dev/null
+++ b/1.11/scala_2.12-java11-debian/Dockerfile
@@ -0,0 +1,87 @@
+###############################################################################
+# 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:11-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.11.4/flink-1.11.4-bin-scala_2.12.tgz
\
+
FLINK_ASC_URL=https://www.apache.org/dist/flink/flink-1.11.4/flink-1.11.4-bin-scala_2.12.tgz.asc
\
+ GPG_KEY=4A978875E56AA2100EB0CF12A244D52CF0A40279 \
+ CHECK_GPG=true
+
+# 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 [ "$CHECK_GPG" = "true" ]; 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.11/scala_2.12-java11-debian/docker-entrypoint.sh
b/1.11/scala_2.12-java11-debian/docker-entrypoint.sh
new file mode 100755
index 0000000..6084f06
--- /dev/null
+++ b/1.11/scala_2.12-java11-debian/docker-entrypoint.sh
@@ -0,0 +1,125 @@
+#!/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.
+###############################################################################
+
+COMMAND_STANDALONE="standalone-job"
+
+# 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
+}
+
+prepare_job_manager_start() {
+ 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}"
+}
+
+if [ "$1" = "help" ]; then
+ echo "Usage: $(basename "$0")
(jobmanager|${COMMAND_STANDALONE}|taskmanager|help)"
+ exit 0
+elif [ "$1" = "jobmanager" ]; then
+ shift 1
+ prepare_job_manager_start
+
+ exec $(drop_privs_cmd) "$FLINK_HOME/bin/jobmanager.sh" start-foreground
"$@"
+elif [ "$1" = ${COMMAND_STANDALONE} ]; then
+ shift 1
+ prepare_job_manager_start
+
+ exec $(drop_privs_cmd) "$FLINK_HOME/bin/standalone-job.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.11/scala_2.12-java11-debian/release.metadata
b/1.11/scala_2.12-java11-debian/release.metadata
new file mode 100644
index 0000000..754c096
--- /dev/null
+++ b/1.11/scala_2.12-java11-debian/release.metadata
@@ -0,0 +1,2 @@
+Tags: 1.11.4-scala_2.12-java11, 1.11-scala_2.12-java11, scala_2.12-java11,
1.11.4-java11, 1.11-java11, java11
+Architectures: amd64
diff --git a/1.11/scala_2.12-java8-debian/Dockerfile
b/1.11/scala_2.12-java8-debian/Dockerfile
new file mode 100644
index 0000000..399ee95
--- /dev/null
+++ b/1.11/scala_2.12-java8-debian/Dockerfile
@@ -0,0 +1,87 @@
+###############################################################################
+# 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.11.4/flink-1.11.4-bin-scala_2.12.tgz
\
+
FLINK_ASC_URL=https://www.apache.org/dist/flink/flink-1.11.4/flink-1.11.4-bin-scala_2.12.tgz.asc
\
+ GPG_KEY=4A978875E56AA2100EB0CF12A244D52CF0A40279 \
+ CHECK_GPG=true
+
+# 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 [ "$CHECK_GPG" = "true" ]; 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.11/scala_2.12-java8-debian/docker-entrypoint.sh
b/1.11/scala_2.12-java8-debian/docker-entrypoint.sh
new file mode 100755
index 0000000..6084f06
--- /dev/null
+++ b/1.11/scala_2.12-java8-debian/docker-entrypoint.sh
@@ -0,0 +1,125 @@
+#!/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.
+###############################################################################
+
+COMMAND_STANDALONE="standalone-job"
+
+# 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
+}
+
+prepare_job_manager_start() {
+ 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}"
+}
+
+if [ "$1" = "help" ]; then
+ echo "Usage: $(basename "$0")
(jobmanager|${COMMAND_STANDALONE}|taskmanager|help)"
+ exit 0
+elif [ "$1" = "jobmanager" ]; then
+ shift 1
+ prepare_job_manager_start
+
+ exec $(drop_privs_cmd) "$FLINK_HOME/bin/jobmanager.sh" start-foreground
"$@"
+elif [ "$1" = ${COMMAND_STANDALONE} ]; then
+ shift 1
+ prepare_job_manager_start
+
+ exec $(drop_privs_cmd) "$FLINK_HOME/bin/standalone-job.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.11/scala_2.12-java8-debian/release.metadata
b/1.11/scala_2.12-java8-debian/release.metadata
new file mode 100644
index 0000000..fee3a32
--- /dev/null
+++ b/1.11/scala_2.12-java8-debian/release.metadata
@@ -0,0 +1,2 @@
+Tags: 1.11.4-scala_2.12-java8, 1.11-scala_2.12-java8, scala_2.12-java8,
1.11.4-scala_2.12, 1.11-scala_2.12, scala_2.12, 1.11.4-java8, 1.11-java8,
java8, 1.11.4, 1.11, latest
+Architectures: amd64