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

markap14 pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/nifi.git


The following commit(s) were added to refs/heads/main by this push:
     new ff05a5d158 NIFI-12074 updated images to base on Java 21 and added 
Python3 (#7785)
ff05a5d158 is described below

commit ff05a5d158137c83034368a031b251ab066e9397
Author: Joe Witt <[email protected]>
AuthorDate: Tue Sep 26 07:08:32 2023 -0700

    NIFI-12074 updated images to base on Java 21 and added Python3 (#7785)
    
    * NIFI-12074 updated images to base on Java 21 and added Python3
    
    * NIFI-12074 ensure python env included, enable python extension mount
---
 nifi-docker/dockerhub/DockerRun.sh          |  2 +-
 nifi-docker/dockerhub/Dockerfile            | 11 +++++++---
 nifi-docker/dockerhub/README.md             |  5 ++++-
 nifi-docker/dockerhub/sh/start.sh           | 32 ++++++-----------------------
 nifi-docker/dockermaven/Dockerfile          | 17 +++++++++------
 nifi-docker/dockermaven/integration-test.sh |  6 ++++--
 nifi-docker/dockermaven/pom.xml             |  1 +
 nifi-docker/pom.xml                         |  4 ++--
 8 files changed, 37 insertions(+), 41 deletions(-)

diff --git a/nifi-docker/dockerhub/DockerRun.sh 
b/nifi-docker/dockerhub/DockerRun.sh
index 97d0092cfc..7554bfaa78 100755
--- a/nifi-docker/dockerhub/DockerRun.sh
+++ b/nifi-docker/dockerhub/DockerRun.sh
@@ -22,4 +22,4 @@ DOCKER_IMAGE="$(grep -Ev '(^#|^\s*$|^\s*\t*#)' 
DockerImage.txt)"
 NIFI_IMAGE_VERSION="$(echo "${DOCKER_IMAGE}" | cut -d : -f 2)"
 
 echo "Running Docker Image: ${DOCKER_IMAGE}"
-docker run -d --name "nifi-${NIFI_IMAGE_VERSION}" -p 8080:8080 -p 8443:8443 -p 
10000:10000 -p 8000:8000 -p 8181:8181 "${DOCKER_IMAGE}"
+docker run -d --name "nifi-${NIFI_IMAGE_VERSION}" -p 8443:8443 -p 10000:10000 
-p 8000:8000 "${DOCKER_IMAGE}"
diff --git a/nifi-docker/dockerhub/Dockerfile b/nifi-docker/dockerhub/Dockerfile
index 61db651783..d77d57d349 100644
--- a/nifi-docker/dockerhub/Dockerfile
+++ b/nifi-docker/dockerhub/Dockerfile
@@ -1,3 +1,4 @@
+# syntax=docker/dockerfile:1
 # 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
@@ -16,8 +17,8 @@
 # under the License.
 #
 
-ARG IMAGE_NAME=eclipse-temurin
-ARG IMAGE_TAG=11-jre
+ARG IMAGE_NAME=bellsoft/liberica-openjdk-alpine
+ARG IMAGE_TAG=21
 FROM ${IMAGE_NAME}:${IMAGE_TAG}
 ARG MAINTAINER="Apache NiFi <[email protected]>"
 LABEL maintainer="${MAINTAINER}"
@@ -48,6 +49,8 @@ RUN groupadd -g ${GID} nifi || groupmod -n nifi `getent group 
${GID} | cut -d: -
     && chown -R nifi:nifi ${NIFI_BASE_DIR} \
     && apt-get update \
     && apt-get install -y jq xmlstarlet procps unzip \
+    && apt-get install -y python3 \
+    && apt-get install -y python3-pip \
     && apt-get -y autoremove \
     && apt-get clean autoclean \
     && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
@@ -73,6 +76,7 @@ RUN curl -fSL ${MIRROR_BASE_URL}/${NIFI_BINARY_PATH} -o 
${NIFI_BASE_DIR}/nifi-${
     && mkdir -p ${NIFI_HOME}/flowfile_repository \
     && mkdir -p ${NIFI_HOME}/content_repository \
     && mkdir -p ${NIFI_HOME}/provenance_repository \
+    && mkdir -p ${NIFI_HOME}/python_extensions \
     && mkdir -p ${NIFI_HOME}/state \
     && mkdir -p ${NIFI_LOG_DIR} \
     && ln -s ${NIFI_HOME} ${NIFI_BASE_DIR}/nifi-${NIFI_VERSION}
@@ -83,13 +87,14 @@ VOLUME ${NIFI_LOG_DIR} \
        ${NIFI_HOME}/flowfile_repository \
        ${NIFI_HOME}/content_repository \
        ${NIFI_HOME}/provenance_repository \
+       ${NIFI_HOME}/python_extensions \
        ${NIFI_HOME}/state
 
 # Clear nifi-env.sh in favour of configuring all environment variables in the 
Dockerfile
 RUN echo "#!/bin/sh\n" > $NIFI_HOME/bin/nifi-env.sh
 
 # Web HTTP(s) & Socket Site-to-Site Ports
-EXPOSE 8080 8443 10000 8000
+EXPOSE 8443/tcp 10000/tcp 8000/tcp
 
 WORKDIR ${NIFI_HOME}
 
diff --git a/nifi-docker/dockerhub/README.md b/nifi-docker/dockerhub/README.md
index 6a4c75e9cc..f7113a0340 100644
--- a/nifi-docker/dockerhub/README.md
+++ b/nifi-docker/dockerhub/README.md
@@ -15,6 +15,10 @@
 
 ## Latest changes
 
+### 2.0.0
+
+- Changed base image to bellsoft/liberica-openjdk-debian:21 as NiFi 2.0.0 
requires Java 21
+
 ### 1.19.0
 
 - Changed base image to eclipse-temurin:11-jre as openjdk:8-jre is no longer 
maintained
@@ -215,7 +219,6 @@ can be published to the host.
 
 | Function                 | Property                      | Port  |
 |--------------------------|-------------------------------|-------|
-| HTTP Port                | nifi.web.http.port            | 8080  |
 | HTTPS Port               | nifi.web.https.port           | 8443  |
 | Remote Input Socket Port | nifi.remote.input.socket.port | 10000 |
 | JVM Debugger             | java.arg.debug                | 8000  |
diff --git a/nifi-docker/dockerhub/sh/start.sh 
b/nifi-docker/dockerhub/sh/start.sh
index ea4319ebc9..b343945513 100755
--- a/nifi-docker/dockerhub/sh/start.sh
+++ b/nifi-docker/dockerhub/sh/start.sh
@@ -32,6 +32,10 @@ if [ ! -z "${NIFI_JVM_DEBUGGER}" ]; then
     uncomment "java.arg.debug" ${nifi_bootstrap_file}
 fi
 
+# Setup NiFi to use Python
+uncomment "nifi.python.command" ${nifi_props_file}
+prop_replace 'nifi.python.extensions.source.directory.default'  
"${NIFI_HOME}/python_extensions"
+
 # Establish baseline properties
 prop_replace 'nifi.web.https.port'              "${NIFI_WEB_HTTPS_PORT:-8443}"
 prop_replace 'nifi.web.https.host'              
"${NIFI_WEB_HTTPS_HOST:-$HOSTNAME}"
@@ -50,32 +54,8 @@ prop_replace 'keystoreType'       "PKCS12"                   
           ${nifi_t
 prop_replace 'truststore'         "${NIFI_HOME}/conf/truststore.p12"    
${nifi_toolkit_props_file}
 prop_replace 'truststoreType'     "PKCS12"                              
${nifi_toolkit_props_file}
 
-if [ -n "${NIFI_WEB_HTTP_PORT}" ]; then
-    prop_replace 'nifi.web.https.port'                        ''
-    prop_replace 'nifi.web.https.host'                        ''
-    prop_replace 'nifi.web.http.port'                         
"${NIFI_WEB_HTTP_PORT}"
-    prop_replace 'nifi.web.http.host'                         
"${NIFI_WEB_HTTP_HOST:-$HOSTNAME}"
-    prop_replace 'nifi.remote.input.secure'                   'false'
-    prop_replace 'nifi.cluster.protocol.is.secure'            'false'
-    prop_replace 'nifi.security.keystore'                     ''
-    prop_replace 'nifi.security.keystoreType'                 ''
-    prop_replace 'nifi.security.truststore'                   ''
-    prop_replace 'nifi.security.truststoreType'               ''
-    prop_replace 'nifi.security.user.login.identity.provider' ''
-    prop_replace 'keystore'                                   '' 
${nifi_toolkit_props_file}
-    prop_replace 'keystoreType'                               '' 
${nifi_toolkit_props_file}
-    prop_replace 'truststore'                                 '' 
${nifi_toolkit_props_file}
-    prop_replace 'truststoreType'                             '' 
${nifi_toolkit_props_file}
-    prop_replace 'baseUrl' 
"http://${NIFI_WEB_HTTP_HOST:-$HOSTNAME}:${NIFI_WEB_HTTP_PORT}"; 
${nifi_toolkit_props_file}
-
-    if [ -n "${NIFI_WEB_PROXY_HOST}" ]; then
-        echo 'NIFI_WEB_PROXY_HOST was set but NiFi is not configured to run in 
a secure mode. Unsetting nifi.web.proxy.host.'
-        prop_replace 'nifi.web.proxy.host' ''
-    fi
-else
-    if [ -z "${NIFI_WEB_PROXY_HOST}" ]; then
-        echo 'NIFI_WEB_PROXY_HOST was not set but NiFi is configured to run in 
a secure mode. The NiFi UI may be inaccessible if using port mapping or 
connecting through a proxy.'
-    fi
+if [ -z "${NIFI_WEB_PROXY_HOST}" ]; then
+    echo 'NIFI_WEB_PROXY_HOST was not set but NiFi is configured to run in a 
secure mode. The NiFi UI may be inaccessible if using port mapping or 
connecting through a proxy.'
 fi
 
 prop_replace 'nifi.cluster.is.node'                         
"${NIFI_CLUSTER_IS_NODE:-false}"
diff --git a/nifi-docker/dockermaven/Dockerfile 
b/nifi-docker/dockermaven/Dockerfile
index 15a524c738..83b6e11f5b 100644
--- a/nifi-docker/dockermaven/Dockerfile
+++ b/nifi-docker/dockermaven/Dockerfile
@@ -1,3 +1,4 @@
+# syntax=docker/dockerfile:1
 # 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
@@ -15,9 +16,8 @@
 # specific language governing permissions and limitations
 # under the License.
 #
-
-ARG IMAGE_NAME=eclipse-temurin
-ARG IMAGE_TAG=11-jre
+ARG IMAGE_NAME=bellsoft/liberica-openjdk-debian
+ARG IMAGE_TAG=21
 FROM ${IMAGE_NAME}:${IMAGE_TAG} AS artifactbase
 ARG MAINTAINER="Apache NiFi <[email protected]>"
 LABEL maintainer="${MAINTAINER}"
@@ -57,16 +57,17 @@ RUN mkdir -p ${NIFI_HOME}/conf \
     && mkdir -p ${NIFI_HOME}/flowfile_repository \
     && mkdir -p ${NIFI_HOME}/content_repository \
     && mkdir -p ${NIFI_HOME}/provenance_repository \
+    && mkdir -p ${NIFI_HOME}/python_extensions \
     && mkdir -p ${NIFI_HOME}/state \
     && mkdir -p ${NIFI_LOG_DIR}
 
 FROM ${IMAGE_NAME}:${IMAGE_TAG}
 ARG MAINTAINER="Apache NiFi <[email protected]>"
 LABEL maintainer="${MAINTAINER}"
-
+#
 ARG UID=1000
 ARG GID=1000
-
+#
 ENV NIFI_BASE_DIR /opt/nifi
 ENV NIFI_HOME ${NIFI_BASE_DIR}/nifi-current
 ENV NIFI_TOOLKIT_HOME ${NIFI_BASE_DIR}/nifi-toolkit-current
@@ -78,6 +79,9 @@ RUN groupadd -g ${GID} nifi || groupmod -n nifi `getent group 
${GID} | cut -d: -
     && useradd --shell /bin/bash -u ${UID} -g ${GID} -m nifi \
     && apt-get update \
     && apt-get install -y jq xmlstarlet procps \
+    && apt-get install -y python3 \
+    && apt-get install -y python3-pip \
+    && apt-get install -y python3-venv \
     && apt-get -y autoremove \
     && apt-get clean autoclean \
     && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
@@ -90,6 +94,7 @@ VOLUME ${NIFI_LOG_DIR} \
        ${NIFI_HOME}/flowfile_repository \
        ${NIFI_HOME}/content_repository \
        ${NIFI_HOME}/provenance_repository \
+       ${NIFI_HOME}/python_extensions \
        ${NIFI_HOME}/state
 
 USER nifi
@@ -98,7 +103,7 @@ USER nifi
 RUN echo "#!/bin/sh\n" > $NIFI_HOME/bin/nifi-env.sh
 
 # Web HTTP(s) & Socket Site-to-Site Ports
-EXPOSE 8080 8443 10000 8000
+EXPOSE 8443/tcp 10000/tcp 8000/tcp
 
 WORKDIR ${NIFI_HOME}
 
diff --git a/nifi-docker/dockermaven/integration-test.sh 
b/nifi-docker/dockermaven/integration-test.sh
index e0d481efde..5bce176083 100755
--- a/nifi-docker/dockermaven/integration-test.sh
+++ b/nifi-docker/dockermaven/integration-test.sh
@@ -44,15 +44,17 @@ docker run -d --name "nifi-${TAG}-integration-test" 
"apache/nifi:${TAG}"
 IP=$(docker inspect -f '{{range 
.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' 
"nifi-${TAG}-integration-test")
 
 for i in $(seq 1 10) :; do
-    echo "Iteration: ${i}"
+    echo "Waiting for NiFi startup - iteration: ${i}"
     if docker exec "nifi-${TAG}-integration-test" bash -c " echo Running < 
/dev/tcp/${IP}/8443"; then
+        echo "NiFi found active on port 8443"
         break
     fi
     sleep 10
 done
 
 echo "Checking NiFi REST API Access"
-test "200" = "$(docker exec "nifi-${TAG}-integration-test" bash -c "curl -s -o 
/dev/null -w %{http_code} -k https://${IP}:8443/nifi-api/access";)"
+# Return code is 400 instead of 200 because of an invalid SNI
+test "400" = "$(docker exec "nifi-${TAG}-integration-test" bash -c "curl -s -o 
/dev/null -w %{http_code} -k https://${IP}:8443/nifi-api/access";)"
 
 echo "Stopping NiFi container"
 time docker stop "nifi-${TAG}-integration-test"
diff --git a/nifi-docker/dockermaven/pom.xml b/nifi-docker/dockermaven/pom.xml
index abe90ee7d7..2ef9a99f63 100644
--- a/nifi-docker/dockermaven/pom.xml
+++ b/nifi-docker/dockermaven/pom.xml
@@ -52,6 +52,7 @@
                                                 </tags>
                                                 
<dockerFile>Dockerfile</dockerFile>
                                                 
<contextDir>${project.basedir}</contextDir>
+                                                <optimise>true</optimise>
                                                 <args>
                                                     
<IMAGE_NAME>${docker.image.name}</IMAGE_NAME>
                                                     
<IMAGE_TAG>${docker.image.tag}</IMAGE_TAG>
diff --git a/nifi-docker/pom.xml b/nifi-docker/pom.xml
index ae8bf0a80b..337bd48291 100644
--- a/nifi-docker/pom.xml
+++ b/nifi-docker/pom.xml
@@ -23,8 +23,8 @@ language governing permissions and limitations under the 
License. -->
 
     <properties>
         <nifi.version>${project.version}</nifi.version>
-        <docker.image.name>eclipse-temurin</docker.image.name>
-        <docker.image.tag>11-jre</docker.image.tag>
+        <docker.image.name>bellsoft/liberica-openjdk-debian</docker.image.name>
+        <docker.image.tag>21</docker.image.tag>
     </properties>
 
     <modules>

Reply via email to