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

dianfu 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 041ac78  [FLINK-20529] Update Dockerfiles for 1.12.0 release
041ac78 is described below

commit 041ac78d9264cc596d9007eb524d24c2b65ca830
Author: Dian Fu <[email protected]>
AuthorDate: Tue Dec 8 16:25:54 2020 +0800

    [FLINK-20529] Update Dockerfiles for 1.12.0 release
    
    This closes #45.
---
 1.10/scala_2.11-debian/release.metadata            |  2 -
 1.10/scala_2.12-debian/release.metadata            |  2 -
 .../scala_2.11-java11-debian}/Dockerfile           | 10 ++--
 .../scala_2.11-java11-debian}/docker-entrypoint.sh | 65 +++++++++++++++++++---
 1.12/scala_2.11-java11-debian/release.metadata     |  2 +
 .../scala_2.11-java8-debian}/Dockerfile            |  8 +--
 .../scala_2.11-java8-debian}/docker-entrypoint.sh  | 65 +++++++++++++++++++---
 1.12/scala_2.11-java8-debian/release.metadata      |  2 +
 .../scala_2.12-java11-debian}/Dockerfile           | 10 ++--
 .../scala_2.12-java11-debian}/docker-entrypoint.sh | 65 +++++++++++++++++++---
 1.12/scala_2.12-java11-debian/release.metadata     |  2 +
 .../scala_2.12-java8-debian}/Dockerfile            |  8 +--
 .../scala_2.12-java8-debian}/docker-entrypoint.sh  | 65 +++++++++++++++++++---
 1.12/scala_2.12-java8-debian/release.metadata      |  2 +
 14 files changed, 254 insertions(+), 54 deletions(-)

diff --git a/1.10/scala_2.11-debian/release.metadata 
b/1.10/scala_2.11-debian/release.metadata
deleted file mode 100644
index e56d39d..0000000
--- a/1.10/scala_2.11-debian/release.metadata
+++ /dev/null
@@ -1,2 +0,0 @@
-Tags: 1.10.2-scala_2.11, 1.10-scala_2.11, scala_2.11
-Architectures: amd64
diff --git a/1.10/scala_2.12-debian/release.metadata 
b/1.10/scala_2.12-debian/release.metadata
deleted file mode 100644
index 3d5d7ea..0000000
--- a/1.10/scala_2.12-debian/release.metadata
+++ /dev/null
@@ -1,2 +0,0 @@
-Tags: 1.10.2-scala_2.12, 1.10-scala_2.12, scala_2.12, 1.10.2, 1.10, latest
-Architectures: amd64
diff --git a/1.10/scala_2.11-debian/Dockerfile 
b/1.12/scala_2.11-java11-debian/Dockerfile
similarity index 91%
copy from 1.10/scala_2.11-debian/Dockerfile
copy to 1.12/scala_2.11-java11-debian/Dockerfile
index 7c07b15..50c635e 100644
--- a/1.10/scala_2.11-debian/Dockerfile
+++ b/1.12/scala_2.11-java11-debian/Dockerfile
@@ -16,12 +16,12 @@
 # limitations under the License.
 ###############################################################################
 
-FROM openjdk:8-jre
+FROM openjdk:11-jre
 
 # Install dependencies
 RUN set -ex; \
   apt-get update; \
-  apt-get -y install libsnappy1v5 gettext-base; \
+  apt-get -y install libsnappy1v5 gettext-base libjemalloc-dev; \
   rm -rf /var/lib/apt/lists/*
 
 # Grab gosu for easy step-down from root
@@ -44,9 +44,9 @@ RUN set -ex; \
   gosu nobody true
 
 # Configure Flink version
-ENV 
FLINK_TGZ_URL=https://www.apache.org/dyn/closer.cgi?action=download&filename=flink/flink-1.10.2/flink-1.10.2-bin-scala_2.11.tgz
 \
-    
FLINK_ASC_URL=https://www.apache.org/dist/flink/flink-1.10.2/flink-1.10.2-bin-scala_2.11.tgz.asc
 \
-    GPG_KEY=C63E230EFFF519A5BBF2C9AE6767487CD505859C \
+ENV 
FLINK_TGZ_URL=https://www.apache.org/dyn/closer.cgi?action=download&filename=flink/flink-1.12.0/flink-1.12.0-bin-scala_2.11.tgz
 \
+    
FLINK_ASC_URL=https://www.apache.org/dist/flink/flink-1.12.0/flink-1.12.0-bin-scala_2.11.tgz.asc
 \
+    GPG_KEY=D9839159 \
     CHECK_GPG=true
 
 # Prepare environment
diff --git a/1.10/scala_2.11-debian/docker-entrypoint.sh 
b/1.12/scala_2.11-java11-debian/docker-entrypoint.sh
similarity index 64%
copy from 1.10/scala_2.11-debian/docker-entrypoint.sh
copy to 1.12/scala_2.11-java11-debian/docker-entrypoint.sh
index 6084f06..68db96b 100755
--- a/1.10/scala_2.11-debian/docker-entrypoint.sh
+++ b/1.12/scala_2.11-java11-debian/docker-entrypoint.sh
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/usr/bin/env bash
 
 ###############################################################################
 #  Licensed to the Apache Software Foundation (ASF) under one
@@ -19,6 +19,9 @@
 ###############################################################################
 
 COMMAND_STANDALONE="standalone-job"
+COMMAND_NATIVE_KUBERNETES="native-k8s"
+COMMAND_HISTORY_SERVER="history-server"
+COMMAND_DISABLE_JEMALLOC="disable-jemalloc"
 
 # If unspecified, the hostname of the container is taken as the JobManager 
address
 JOB_MANAGER_RPC_ADDRESS=${JOB_MANAGER_RPC_ADDRESS:-$(hostname -f)}
@@ -91,21 +94,55 @@ prepare_job_manager_start() {
     envsubst < "${CONF_FILE}" > "${CONF_FILE}.tmp" && mv "${CONF_FILE}.tmp" 
"${CONF_FILE}"
 }
 
+disable_jemalloc_env() {
+  # use nameref '_args' to update the passed 'args' within function
+  local -n _args=$1
+  if [ "${_args[0]}" = ${COMMAND_DISABLE_JEMALLOC} ]; then
+      echo "Disable Jemalloc as the memory allocator"
+      _args=("${_args[@]:1}")
+  else
+      echo "Enable Jemalloc as the memory allocator via appending env variable 
LD_PRELOAD with /usr/lib/x86_64-linux-gnu/libjemalloc.so"
+      export LD_PRELOAD=$LD_PRELOAD:/usr/lib/x86_64-linux-gnu/libjemalloc.so
+  fi
+}
+
+args=("$@")
 if [ "$1" = "help" ]; then
-    echo "Usage: $(basename "$0") 
(jobmanager|${COMMAND_STANDALONE}|taskmanager|help)"
+    printf "Usage: $(basename "$0") 
(jobmanager|${COMMAND_STANDALONE}|taskmanager|${COMMAND_NATIVE_KUBERNETES}|${COMMAND_HISTORY_SERVER})
 [${COMMAND_DISABLE_JEMALLOC}]\n"
+    printf "    Or $(basename "$0") help\n\n"
+    printf "By default, Flink image adopts jemalloc as default memory 
allocator and will disable jemalloc if option '${COMMAND_DISABLE_JEMALLOC}' 
given.\n"
     exit 0
 elif [ "$1" = "jobmanager" ]; then
-    shift 1
+    args=("${args[@]:1}")
+    disable_jemalloc_env args
+
     prepare_job_manager_start
 
-    exec $(drop_privs_cmd) "$FLINK_HOME/bin/jobmanager.sh" start-foreground 
"$@"
+    exec $(drop_privs_cmd) "$FLINK_HOME/bin/jobmanager.sh" start-foreground 
"${args[@]}"
 elif [ "$1" = ${COMMAND_STANDALONE} ]; then
-    shift 1
+    args=("${args[@]:1}")
+    disable_jemalloc_env args
+
     prepare_job_manager_start
 
-    exec $(drop_privs_cmd) "$FLINK_HOME/bin/standalone-job.sh" 
start-foreground "$@"
+    exec $(drop_privs_cmd) "$FLINK_HOME/bin/standalone-job.sh" 
start-foreground "${args[@]}"
+elif [ "$1" = ${COMMAND_HISTORY_SERVER} ]; then
+    args=("${args[@]:1}")
+    disable_jemalloc_env args
+
+    echo "Starting History Server"
+    copy_plugins_if_required
+
+    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/historyserver.sh" start-foreground 
"${args[@]}"
 elif [ "$1" = "taskmanager" ]; then
-    shift 1
+    args=("${args[@]:1}")
+    disable_jemalloc_env args
+
     echo "Starting Task Manager"
     copy_plugins_if_required
 
@@ -119,7 +156,19 @@ elif [ "$1" = "taskmanager" ]; then
     fi
     envsubst < "${CONF_FILE}" > "${CONF_FILE}.tmp" && mv "${CONF_FILE}.tmp" 
"${CONF_FILE}"
 
-    exec $(drop_privs_cmd) "$FLINK_HOME/bin/taskmanager.sh" start-foreground 
"$@"
+    exec $(drop_privs_cmd) "$FLINK_HOME/bin/taskmanager.sh" start-foreground 
"${args[@]}"
+elif [ "$1" = "$COMMAND_NATIVE_KUBERNETES" ]; then
+    args=("${args[@]:1}")
+    disable_jemalloc_env args
+
+    copy_plugins_if_required
+
+    export _FLINK_HOME_DETERMINED=true
+    . $FLINK_HOME/bin/config.sh
+    export 
FLINK_CLASSPATH="`constructFlinkClassPath`:$INTERNAL_HADOOP_CLASSPATHS"
+    # Start commands for jobmanager and taskmanager are generated by Flink 
internally.
+    echo "Start command: ${args[@]}"
+    exec $(drop_privs_cmd) bash -c "${args[@]}"
 fi
 
 exec "$@"
diff --git a/1.12/scala_2.11-java11-debian/release.metadata 
b/1.12/scala_2.11-java11-debian/release.metadata
new file mode 100644
index 0000000..b02dcab
--- /dev/null
+++ b/1.12/scala_2.11-java11-debian/release.metadata
@@ -0,0 +1,2 @@
+Tags: 1.12.0-scala_2.11-java11, 1.12-scala_2.11-java11, scala_2.11-java11
+Architectures: amd64
diff --git a/1.10/scala_2.11-debian/Dockerfile 
b/1.12/scala_2.11-java8-debian/Dockerfile
similarity index 92%
copy from 1.10/scala_2.11-debian/Dockerfile
copy to 1.12/scala_2.11-java8-debian/Dockerfile
index 7c07b15..4d3b0f2 100644
--- a/1.10/scala_2.11-debian/Dockerfile
+++ b/1.12/scala_2.11-java8-debian/Dockerfile
@@ -21,7 +21,7 @@ FROM openjdk:8-jre
 # Install dependencies
 RUN set -ex; \
   apt-get update; \
-  apt-get -y install libsnappy1v5 gettext-base; \
+  apt-get -y install libsnappy1v5 gettext-base libjemalloc-dev; \
   rm -rf /var/lib/apt/lists/*
 
 # Grab gosu for easy step-down from root
@@ -44,9 +44,9 @@ RUN set -ex; \
   gosu nobody true
 
 # Configure Flink version
-ENV 
FLINK_TGZ_URL=https://www.apache.org/dyn/closer.cgi?action=download&filename=flink/flink-1.10.2/flink-1.10.2-bin-scala_2.11.tgz
 \
-    
FLINK_ASC_URL=https://www.apache.org/dist/flink/flink-1.10.2/flink-1.10.2-bin-scala_2.11.tgz.asc
 \
-    GPG_KEY=C63E230EFFF519A5BBF2C9AE6767487CD505859C \
+ENV 
FLINK_TGZ_URL=https://www.apache.org/dyn/closer.cgi?action=download&filename=flink/flink-1.12.0/flink-1.12.0-bin-scala_2.11.tgz
 \
+    
FLINK_ASC_URL=https://www.apache.org/dist/flink/flink-1.12.0/flink-1.12.0-bin-scala_2.11.tgz.asc
 \
+    GPG_KEY=D9839159 \
     CHECK_GPG=true
 
 # Prepare environment
diff --git a/1.10/scala_2.12-debian/docker-entrypoint.sh 
b/1.12/scala_2.11-java8-debian/docker-entrypoint.sh
similarity index 64%
rename from 1.10/scala_2.12-debian/docker-entrypoint.sh
rename to 1.12/scala_2.11-java8-debian/docker-entrypoint.sh
index 6084f06..68db96b 100755
--- a/1.10/scala_2.12-debian/docker-entrypoint.sh
+++ b/1.12/scala_2.11-java8-debian/docker-entrypoint.sh
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/usr/bin/env bash
 
 ###############################################################################
 #  Licensed to the Apache Software Foundation (ASF) under one
@@ -19,6 +19,9 @@
 ###############################################################################
 
 COMMAND_STANDALONE="standalone-job"
+COMMAND_NATIVE_KUBERNETES="native-k8s"
+COMMAND_HISTORY_SERVER="history-server"
+COMMAND_DISABLE_JEMALLOC="disable-jemalloc"
 
 # If unspecified, the hostname of the container is taken as the JobManager 
address
 JOB_MANAGER_RPC_ADDRESS=${JOB_MANAGER_RPC_ADDRESS:-$(hostname -f)}
@@ -91,21 +94,55 @@ prepare_job_manager_start() {
     envsubst < "${CONF_FILE}" > "${CONF_FILE}.tmp" && mv "${CONF_FILE}.tmp" 
"${CONF_FILE}"
 }
 
+disable_jemalloc_env() {
+  # use nameref '_args' to update the passed 'args' within function
+  local -n _args=$1
+  if [ "${_args[0]}" = ${COMMAND_DISABLE_JEMALLOC} ]; then
+      echo "Disable Jemalloc as the memory allocator"
+      _args=("${_args[@]:1}")
+  else
+      echo "Enable Jemalloc as the memory allocator via appending env variable 
LD_PRELOAD with /usr/lib/x86_64-linux-gnu/libjemalloc.so"
+      export LD_PRELOAD=$LD_PRELOAD:/usr/lib/x86_64-linux-gnu/libjemalloc.so
+  fi
+}
+
+args=("$@")
 if [ "$1" = "help" ]; then
-    echo "Usage: $(basename "$0") 
(jobmanager|${COMMAND_STANDALONE}|taskmanager|help)"
+    printf "Usage: $(basename "$0") 
(jobmanager|${COMMAND_STANDALONE}|taskmanager|${COMMAND_NATIVE_KUBERNETES}|${COMMAND_HISTORY_SERVER})
 [${COMMAND_DISABLE_JEMALLOC}]\n"
+    printf "    Or $(basename "$0") help\n\n"
+    printf "By default, Flink image adopts jemalloc as default memory 
allocator and will disable jemalloc if option '${COMMAND_DISABLE_JEMALLOC}' 
given.\n"
     exit 0
 elif [ "$1" = "jobmanager" ]; then
-    shift 1
+    args=("${args[@]:1}")
+    disable_jemalloc_env args
+
     prepare_job_manager_start
 
-    exec $(drop_privs_cmd) "$FLINK_HOME/bin/jobmanager.sh" start-foreground 
"$@"
+    exec $(drop_privs_cmd) "$FLINK_HOME/bin/jobmanager.sh" start-foreground 
"${args[@]}"
 elif [ "$1" = ${COMMAND_STANDALONE} ]; then
-    shift 1
+    args=("${args[@]:1}")
+    disable_jemalloc_env args
+
     prepare_job_manager_start
 
-    exec $(drop_privs_cmd) "$FLINK_HOME/bin/standalone-job.sh" 
start-foreground "$@"
+    exec $(drop_privs_cmd) "$FLINK_HOME/bin/standalone-job.sh" 
start-foreground "${args[@]}"
+elif [ "$1" = ${COMMAND_HISTORY_SERVER} ]; then
+    args=("${args[@]:1}")
+    disable_jemalloc_env args
+
+    echo "Starting History Server"
+    copy_plugins_if_required
+
+    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/historyserver.sh" start-foreground 
"${args[@]}"
 elif [ "$1" = "taskmanager" ]; then
-    shift 1
+    args=("${args[@]:1}")
+    disable_jemalloc_env args
+
     echo "Starting Task Manager"
     copy_plugins_if_required
 
@@ -119,7 +156,19 @@ elif [ "$1" = "taskmanager" ]; then
     fi
     envsubst < "${CONF_FILE}" > "${CONF_FILE}.tmp" && mv "${CONF_FILE}.tmp" 
"${CONF_FILE}"
 
-    exec $(drop_privs_cmd) "$FLINK_HOME/bin/taskmanager.sh" start-foreground 
"$@"
+    exec $(drop_privs_cmd) "$FLINK_HOME/bin/taskmanager.sh" start-foreground 
"${args[@]}"
+elif [ "$1" = "$COMMAND_NATIVE_KUBERNETES" ]; then
+    args=("${args[@]:1}")
+    disable_jemalloc_env args
+
+    copy_plugins_if_required
+
+    export _FLINK_HOME_DETERMINED=true
+    . $FLINK_HOME/bin/config.sh
+    export 
FLINK_CLASSPATH="`constructFlinkClassPath`:$INTERNAL_HADOOP_CLASSPATHS"
+    # Start commands for jobmanager and taskmanager are generated by Flink 
internally.
+    echo "Start command: ${args[@]}"
+    exec $(drop_privs_cmd) bash -c "${args[@]}"
 fi
 
 exec "$@"
diff --git a/1.12/scala_2.11-java8-debian/release.metadata 
b/1.12/scala_2.11-java8-debian/release.metadata
new file mode 100644
index 0000000..3e3769f
--- /dev/null
+++ b/1.12/scala_2.11-java8-debian/release.metadata
@@ -0,0 +1,2 @@
+Tags: 1.12.0-scala_2.11-java8, 1.12-scala_2.11-java8, scala_2.11-java8, 
1.12.0-scala_2.11, 1.12-scala_2.11, scala_2.11
+Architectures: amd64
diff --git a/1.10/scala_2.11-debian/Dockerfile 
b/1.12/scala_2.12-java11-debian/Dockerfile
similarity index 91%
rename from 1.10/scala_2.11-debian/Dockerfile
rename to 1.12/scala_2.12-java11-debian/Dockerfile
index 7c07b15..48c2b59 100644
--- a/1.10/scala_2.11-debian/Dockerfile
+++ b/1.12/scala_2.12-java11-debian/Dockerfile
@@ -16,12 +16,12 @@
 # limitations under the License.
 ###############################################################################
 
-FROM openjdk:8-jre
+FROM openjdk:11-jre
 
 # Install dependencies
 RUN set -ex; \
   apt-get update; \
-  apt-get -y install libsnappy1v5 gettext-base; \
+  apt-get -y install libsnappy1v5 gettext-base libjemalloc-dev; \
   rm -rf /var/lib/apt/lists/*
 
 # Grab gosu for easy step-down from root
@@ -44,9 +44,9 @@ RUN set -ex; \
   gosu nobody true
 
 # Configure Flink version
-ENV 
FLINK_TGZ_URL=https://www.apache.org/dyn/closer.cgi?action=download&filename=flink/flink-1.10.2/flink-1.10.2-bin-scala_2.11.tgz
 \
-    
FLINK_ASC_URL=https://www.apache.org/dist/flink/flink-1.10.2/flink-1.10.2-bin-scala_2.11.tgz.asc
 \
-    GPG_KEY=C63E230EFFF519A5BBF2C9AE6767487CD505859C \
+ENV 
FLINK_TGZ_URL=https://www.apache.org/dyn/closer.cgi?action=download&filename=flink/flink-1.12.0/flink-1.12.0-bin-scala_2.12.tgz
 \
+    
FLINK_ASC_URL=https://www.apache.org/dist/flink/flink-1.12.0/flink-1.12.0-bin-scala_2.12.tgz.asc
 \
+    GPG_KEY=D9839159 \
     CHECK_GPG=true
 
 # Prepare environment
diff --git a/1.10/scala_2.11-debian/docker-entrypoint.sh 
b/1.12/scala_2.12-java11-debian/docker-entrypoint.sh
similarity index 64%
copy from 1.10/scala_2.11-debian/docker-entrypoint.sh
copy to 1.12/scala_2.12-java11-debian/docker-entrypoint.sh
index 6084f06..68db96b 100755
--- a/1.10/scala_2.11-debian/docker-entrypoint.sh
+++ b/1.12/scala_2.12-java11-debian/docker-entrypoint.sh
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/usr/bin/env bash
 
 ###############################################################################
 #  Licensed to the Apache Software Foundation (ASF) under one
@@ -19,6 +19,9 @@
 ###############################################################################
 
 COMMAND_STANDALONE="standalone-job"
+COMMAND_NATIVE_KUBERNETES="native-k8s"
+COMMAND_HISTORY_SERVER="history-server"
+COMMAND_DISABLE_JEMALLOC="disable-jemalloc"
 
 # If unspecified, the hostname of the container is taken as the JobManager 
address
 JOB_MANAGER_RPC_ADDRESS=${JOB_MANAGER_RPC_ADDRESS:-$(hostname -f)}
@@ -91,21 +94,55 @@ prepare_job_manager_start() {
     envsubst < "${CONF_FILE}" > "${CONF_FILE}.tmp" && mv "${CONF_FILE}.tmp" 
"${CONF_FILE}"
 }
 
+disable_jemalloc_env() {
+  # use nameref '_args' to update the passed 'args' within function
+  local -n _args=$1
+  if [ "${_args[0]}" = ${COMMAND_DISABLE_JEMALLOC} ]; then
+      echo "Disable Jemalloc as the memory allocator"
+      _args=("${_args[@]:1}")
+  else
+      echo "Enable Jemalloc as the memory allocator via appending env variable 
LD_PRELOAD with /usr/lib/x86_64-linux-gnu/libjemalloc.so"
+      export LD_PRELOAD=$LD_PRELOAD:/usr/lib/x86_64-linux-gnu/libjemalloc.so
+  fi
+}
+
+args=("$@")
 if [ "$1" = "help" ]; then
-    echo "Usage: $(basename "$0") 
(jobmanager|${COMMAND_STANDALONE}|taskmanager|help)"
+    printf "Usage: $(basename "$0") 
(jobmanager|${COMMAND_STANDALONE}|taskmanager|${COMMAND_NATIVE_KUBERNETES}|${COMMAND_HISTORY_SERVER})
 [${COMMAND_DISABLE_JEMALLOC}]\n"
+    printf "    Or $(basename "$0") help\n\n"
+    printf "By default, Flink image adopts jemalloc as default memory 
allocator and will disable jemalloc if option '${COMMAND_DISABLE_JEMALLOC}' 
given.\n"
     exit 0
 elif [ "$1" = "jobmanager" ]; then
-    shift 1
+    args=("${args[@]:1}")
+    disable_jemalloc_env args
+
     prepare_job_manager_start
 
-    exec $(drop_privs_cmd) "$FLINK_HOME/bin/jobmanager.sh" start-foreground 
"$@"
+    exec $(drop_privs_cmd) "$FLINK_HOME/bin/jobmanager.sh" start-foreground 
"${args[@]}"
 elif [ "$1" = ${COMMAND_STANDALONE} ]; then
-    shift 1
+    args=("${args[@]:1}")
+    disable_jemalloc_env args
+
     prepare_job_manager_start
 
-    exec $(drop_privs_cmd) "$FLINK_HOME/bin/standalone-job.sh" 
start-foreground "$@"
+    exec $(drop_privs_cmd) "$FLINK_HOME/bin/standalone-job.sh" 
start-foreground "${args[@]}"
+elif [ "$1" = ${COMMAND_HISTORY_SERVER} ]; then
+    args=("${args[@]:1}")
+    disable_jemalloc_env args
+
+    echo "Starting History Server"
+    copy_plugins_if_required
+
+    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/historyserver.sh" start-foreground 
"${args[@]}"
 elif [ "$1" = "taskmanager" ]; then
-    shift 1
+    args=("${args[@]:1}")
+    disable_jemalloc_env args
+
     echo "Starting Task Manager"
     copy_plugins_if_required
 
@@ -119,7 +156,19 @@ elif [ "$1" = "taskmanager" ]; then
     fi
     envsubst < "${CONF_FILE}" > "${CONF_FILE}.tmp" && mv "${CONF_FILE}.tmp" 
"${CONF_FILE}"
 
-    exec $(drop_privs_cmd) "$FLINK_HOME/bin/taskmanager.sh" start-foreground 
"$@"
+    exec $(drop_privs_cmd) "$FLINK_HOME/bin/taskmanager.sh" start-foreground 
"${args[@]}"
+elif [ "$1" = "$COMMAND_NATIVE_KUBERNETES" ]; then
+    args=("${args[@]:1}")
+    disable_jemalloc_env args
+
+    copy_plugins_if_required
+
+    export _FLINK_HOME_DETERMINED=true
+    . $FLINK_HOME/bin/config.sh
+    export 
FLINK_CLASSPATH="`constructFlinkClassPath`:$INTERNAL_HADOOP_CLASSPATHS"
+    # Start commands for jobmanager and taskmanager are generated by Flink 
internally.
+    echo "Start command: ${args[@]}"
+    exec $(drop_privs_cmd) bash -c "${args[@]}"
 fi
 
 exec "$@"
diff --git a/1.12/scala_2.12-java11-debian/release.metadata 
b/1.12/scala_2.12-java11-debian/release.metadata
new file mode 100644
index 0000000..234cbda
--- /dev/null
+++ b/1.12/scala_2.12-java11-debian/release.metadata
@@ -0,0 +1,2 @@
+Tags: 1.12.0-scala_2.12-java11, 1.12-scala_2.12-java11, scala_2.12-java11, 
1.12.0-java11, 1.12-java11, java11
+Architectures: amd64
diff --git a/1.10/scala_2.12-debian/Dockerfile 
b/1.12/scala_2.12-java8-debian/Dockerfile
similarity index 92%
rename from 1.10/scala_2.12-debian/Dockerfile
rename to 1.12/scala_2.12-java8-debian/Dockerfile
index 29afb1a..ceb8bb1 100644
--- a/1.10/scala_2.12-debian/Dockerfile
+++ b/1.12/scala_2.12-java8-debian/Dockerfile
@@ -21,7 +21,7 @@ FROM openjdk:8-jre
 # Install dependencies
 RUN set -ex; \
   apt-get update; \
-  apt-get -y install libsnappy1v5 gettext-base; \
+  apt-get -y install libsnappy1v5 gettext-base libjemalloc-dev; \
   rm -rf /var/lib/apt/lists/*
 
 # Grab gosu for easy step-down from root
@@ -44,9 +44,9 @@ RUN set -ex; \
   gosu nobody true
 
 # Configure Flink version
-ENV 
FLINK_TGZ_URL=https://www.apache.org/dyn/closer.cgi?action=download&filename=flink/flink-1.10.2/flink-1.10.2-bin-scala_2.12.tgz
 \
-    
FLINK_ASC_URL=https://www.apache.org/dist/flink/flink-1.10.2/flink-1.10.2-bin-scala_2.12.tgz.asc
 \
-    GPG_KEY=C63E230EFFF519A5BBF2C9AE6767487CD505859C \
+ENV 
FLINK_TGZ_URL=https://www.apache.org/dyn/closer.cgi?action=download&filename=flink/flink-1.12.0/flink-1.12.0-bin-scala_2.12.tgz
 \
+    
FLINK_ASC_URL=https://www.apache.org/dist/flink/flink-1.12.0/flink-1.12.0-bin-scala_2.12.tgz.asc
 \
+    GPG_KEY=D9839159 \
     CHECK_GPG=true
 
 # Prepare environment
diff --git a/1.10/scala_2.11-debian/docker-entrypoint.sh 
b/1.12/scala_2.12-java8-debian/docker-entrypoint.sh
similarity index 64%
rename from 1.10/scala_2.11-debian/docker-entrypoint.sh
rename to 1.12/scala_2.12-java8-debian/docker-entrypoint.sh
index 6084f06..68db96b 100755
--- a/1.10/scala_2.11-debian/docker-entrypoint.sh
+++ b/1.12/scala_2.12-java8-debian/docker-entrypoint.sh
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/usr/bin/env bash
 
 ###############################################################################
 #  Licensed to the Apache Software Foundation (ASF) under one
@@ -19,6 +19,9 @@
 ###############################################################################
 
 COMMAND_STANDALONE="standalone-job"
+COMMAND_NATIVE_KUBERNETES="native-k8s"
+COMMAND_HISTORY_SERVER="history-server"
+COMMAND_DISABLE_JEMALLOC="disable-jemalloc"
 
 # If unspecified, the hostname of the container is taken as the JobManager 
address
 JOB_MANAGER_RPC_ADDRESS=${JOB_MANAGER_RPC_ADDRESS:-$(hostname -f)}
@@ -91,21 +94,55 @@ prepare_job_manager_start() {
     envsubst < "${CONF_FILE}" > "${CONF_FILE}.tmp" && mv "${CONF_FILE}.tmp" 
"${CONF_FILE}"
 }
 
+disable_jemalloc_env() {
+  # use nameref '_args' to update the passed 'args' within function
+  local -n _args=$1
+  if [ "${_args[0]}" = ${COMMAND_DISABLE_JEMALLOC} ]; then
+      echo "Disable Jemalloc as the memory allocator"
+      _args=("${_args[@]:1}")
+  else
+      echo "Enable Jemalloc as the memory allocator via appending env variable 
LD_PRELOAD with /usr/lib/x86_64-linux-gnu/libjemalloc.so"
+      export LD_PRELOAD=$LD_PRELOAD:/usr/lib/x86_64-linux-gnu/libjemalloc.so
+  fi
+}
+
+args=("$@")
 if [ "$1" = "help" ]; then
-    echo "Usage: $(basename "$0") 
(jobmanager|${COMMAND_STANDALONE}|taskmanager|help)"
+    printf "Usage: $(basename "$0") 
(jobmanager|${COMMAND_STANDALONE}|taskmanager|${COMMAND_NATIVE_KUBERNETES}|${COMMAND_HISTORY_SERVER})
 [${COMMAND_DISABLE_JEMALLOC}]\n"
+    printf "    Or $(basename "$0") help\n\n"
+    printf "By default, Flink image adopts jemalloc as default memory 
allocator and will disable jemalloc if option '${COMMAND_DISABLE_JEMALLOC}' 
given.\n"
     exit 0
 elif [ "$1" = "jobmanager" ]; then
-    shift 1
+    args=("${args[@]:1}")
+    disable_jemalloc_env args
+
     prepare_job_manager_start
 
-    exec $(drop_privs_cmd) "$FLINK_HOME/bin/jobmanager.sh" start-foreground 
"$@"
+    exec $(drop_privs_cmd) "$FLINK_HOME/bin/jobmanager.sh" start-foreground 
"${args[@]}"
 elif [ "$1" = ${COMMAND_STANDALONE} ]; then
-    shift 1
+    args=("${args[@]:1}")
+    disable_jemalloc_env args
+
     prepare_job_manager_start
 
-    exec $(drop_privs_cmd) "$FLINK_HOME/bin/standalone-job.sh" 
start-foreground "$@"
+    exec $(drop_privs_cmd) "$FLINK_HOME/bin/standalone-job.sh" 
start-foreground "${args[@]}"
+elif [ "$1" = ${COMMAND_HISTORY_SERVER} ]; then
+    args=("${args[@]:1}")
+    disable_jemalloc_env args
+
+    echo "Starting History Server"
+    copy_plugins_if_required
+
+    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/historyserver.sh" start-foreground 
"${args[@]}"
 elif [ "$1" = "taskmanager" ]; then
-    shift 1
+    args=("${args[@]:1}")
+    disable_jemalloc_env args
+
     echo "Starting Task Manager"
     copy_plugins_if_required
 
@@ -119,7 +156,19 @@ elif [ "$1" = "taskmanager" ]; then
     fi
     envsubst < "${CONF_FILE}" > "${CONF_FILE}.tmp" && mv "${CONF_FILE}.tmp" 
"${CONF_FILE}"
 
-    exec $(drop_privs_cmd) "$FLINK_HOME/bin/taskmanager.sh" start-foreground 
"$@"
+    exec $(drop_privs_cmd) "$FLINK_HOME/bin/taskmanager.sh" start-foreground 
"${args[@]}"
+elif [ "$1" = "$COMMAND_NATIVE_KUBERNETES" ]; then
+    args=("${args[@]:1}")
+    disable_jemalloc_env args
+
+    copy_plugins_if_required
+
+    export _FLINK_HOME_DETERMINED=true
+    . $FLINK_HOME/bin/config.sh
+    export 
FLINK_CLASSPATH="`constructFlinkClassPath`:$INTERNAL_HADOOP_CLASSPATHS"
+    # Start commands for jobmanager and taskmanager are generated by Flink 
internally.
+    echo "Start command: ${args[@]}"
+    exec $(drop_privs_cmd) bash -c "${args[@]}"
 fi
 
 exec "$@"
diff --git a/1.12/scala_2.12-java8-debian/release.metadata 
b/1.12/scala_2.12-java8-debian/release.metadata
new file mode 100644
index 0000000..bb3d3af
--- /dev/null
+++ b/1.12/scala_2.12-java8-debian/release.metadata
@@ -0,0 +1,2 @@
+Tags: 1.12.0-scala_2.12-java8, 1.12-scala_2.12-java8, scala_2.12-java8, 
1.12.0-scala_2.12, 1.12-scala_2.12, scala_2.12, 1.12.0-java8, 1.12-java8, 
java8, 1.12.0, 1.12, latest
+Architectures: amd64

Reply via email to