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