This is an automated email from the ASF dual-hosted git repository. exceptionfactory pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/nifi.git
commit 8b71edd61ad1360f5c8c09c27cdf6dff63d21925 Author: Ferenc Kis <[email protected]> AuthorDate: Fri Nov 18 14:30:51 2022 +0100 NIFI-10857 Fixed MiNiFi-C2 ITs and optimized MiNiFi and MiNiFi-C2 Docker images This closes #6702 Signed-off-by: David Handermann <[email protected]> --- minifi/minifi-c2/minifi-c2-assembly/pom.xml | 18 ++++++++++ .../src/main/assembly/dependencies.xml | 18 ++++++++++ .../minifi-c2-docker/dockermaven/Dockerfile | 36 ++++++++++++++----- minifi/minifi-c2/minifi-c2-docker/pom.xml | 1 + minifi/minifi-docker/dockermaven/Dockerfile | 42 +++++++++++++++------- minifi/minifi-docker/pom.xml | 1 + 6 files changed, 94 insertions(+), 22 deletions(-) diff --git a/minifi/minifi-c2/minifi-c2-assembly/pom.xml b/minifi/minifi-c2/minifi-c2-assembly/pom.xml index 6cd3dec9e6..8ce028d491 100644 --- a/minifi/minifi-c2/minifi-c2-assembly/pom.xml +++ b/minifi/minifi-c2/minifi-c2-assembly/pom.xml @@ -180,6 +180,24 @@ limitations under the License. <version>${project.version}</version> <type>war</type> </dependency> + + <!-- dependencies for jaxb/activation/annotation for running MiNiFi on Java 11 --> + <!-- TODO: remove these once minimum Java version is 11 --> + <dependency> + <groupId>jakarta.xml.bind</groupId> + <artifactId>jakarta.xml.bind-api</artifactId> + <version>${jakarta.xml.bind-api.version}</version> + </dependency> + <dependency> + <groupId>org.glassfish.jaxb</groupId> + <artifactId>jaxb-runtime</artifactId> + <version>${jaxb.runtime.version}</version> + </dependency> + <dependency> + <groupId>javax.annotation</groupId> + <artifactId>javax.annotation-api</artifactId> + <version>${javax.annotation-api.version}</version> + </dependency> </dependencies> <profiles> <profile> diff --git a/minifi/minifi-c2/minifi-c2-assembly/src/main/assembly/dependencies.xml b/minifi/minifi-c2/minifi-c2-assembly/src/main/assembly/dependencies.xml index 026200c66a..bbfcf4c180 100644 --- a/minifi/minifi-c2/minifi-c2-assembly/src/main/assembly/dependencies.xml +++ b/minifi/minifi-c2/minifi-c2-assembly/src/main/assembly/dependencies.xml @@ -45,6 +45,24 @@ <include>*:war</include> </includes> </dependencySet> + + <!-- Write out the bootstrap libs for java11 to its own dir --> + <!-- TODO: remove this dependency set once minimum Java version is 11 --> + <dependencySet> + <scope>runtime</scope> + <useProjectArtifact>false</useProjectArtifact> + <outputDirectory>lib/java11</outputDirectory> + <directoryMode>0770</directoryMode> + <fileMode>0664</fileMode> + <useTransitiveFiltering>true</useTransitiveFiltering> + <includes> + <include>org.glassfish.jaxb:jaxb-runtime</include> + <include>jakarta.xml.bind:jakarta.xml.bind-api</include> + <include>javax.annotation:javax.annotation-api</include> + <include>com.sun.activation:jakarta.activation</include> + <include>jakarta.activation:jakarta.activation-api</include> + </includes> + </dependencySet> </dependencySets> <fileSets> <fileSet> diff --git a/minifi/minifi-c2/minifi-c2-docker/dockermaven/Dockerfile b/minifi/minifi-c2/minifi-c2-docker/dockermaven/Dockerfile index 754a1ed72f..6af6d02243 100644 --- a/minifi/minifi-c2/minifi-c2-docker/dockermaven/Dockerfile +++ b/minifi/minifi-c2/minifi-c2-docker/dockermaven/Dockerfile @@ -16,17 +16,19 @@ # under the License. # -FROM eclipse-temurin:11-jre -LABEL maintainer="Apache NiFi <[email protected]>" -LABEL site="https://nifi.apache.org" +ARG IMAGE_NAME=eclipse-temurin +ARG IMAGE_TAG=11-jre +FROM ${IMAGE_NAME}:${IMAGE_TAG} as builder +LABEL stage=builder ARG UID=1000 ARG GID=1000 ARG MINIFI_C2_VERSION +ARG MINIFI_C2_BINARY_NAME ARG MINIFI_C2_BINARY +ENV MINIFI_C2_USER c2 ENV MINIFI_C2_BASE_DIR /opt/minifi-c2 -ENV MINIFI_C2_BINARY_NAME minifi-c2-${MINIFI_C2_VERSION}-bin.zip ENV MINIFI_C2_HOME ${MINIFI_C2_BASE_DIR}/minifi-c2-current RUN mkdir -p ${MINIFI_C2_BASE_DIR} @@ -39,12 +41,28 @@ RUN apt-get update \ && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* \ && unzip ${MINIFI_C2_BASE_DIR}/${MINIFI_C2_BINARY_NAME} -d ${MINIFI_C2_BASE_DIR} \ && rm ${MINIFI_C2_BASE_DIR}/${MINIFI_C2_BINARY_NAME} \ - && groupadd -g ${GID} c2 \ - && useradd --shell /bin/bash -u ${UID} -g ${GID} -m c2 \ - && ln -s $MINIFI_C2_BASE_DIR/minifi-c2-$MINIFI_C2_VERSION $MINIFI_C2_HOME \ - && chown -R -L c2:c2 ${MINIFI_C2_BASE_DIR} + && groupadd -g ${GID} ${MINIFI_C2_USER} \ + && useradd --shell /bin/bash -u ${UID} -g ${GID} -m ${MINIFI_C2_USER} \ + && ln -s ${MINIFI_C2_BASE_DIR}/minifi-c2-${MINIFI_C2_VERSION} ${MINIFI_C2_HOME} \ + && chown -R -L ${MINIFI_C2_USER}:${MINIFI_C2_USER} ${MINIFI_C2_BASE_DIR} + +FROM ${IMAGE_NAME}:${IMAGE_TAG} +LABEL maintainer="Apache NiFi <[email protected]>" +LABEL site="https://nifi.apache.org" + +ARG UID +ARG GID + +ENV MINIFI_C2_USER c2 +ENV MINIFI_C2_BASE_DIR /opt/minifi-c2 +ENV MINIFI_C2_HOME ${MINIFI_C2_BASE_DIR}/minifi-c2-current + +RUN groupadd -g ${GID} ${MINIFI_C2_USER} \ + && useradd --shell /bin/bash -u ${UID} -g ${GID} -m ${MINIFI_C2_USER} + +COPY --from=builder ${MINIFI_C2_BASE_DIR} ${MINIFI_C2_BASE_DIR} -USER c2 +USER ${MINIFI_C2_USER} #Default http port EXPOSE 10090 diff --git a/minifi/minifi-c2/minifi-c2-docker/pom.xml b/minifi/minifi-c2/minifi-c2-docker/pom.xml index ab111c3623..ad7033c12c 100644 --- a/minifi/minifi-c2/minifi-c2-docker/pom.xml +++ b/minifi/minifi-c2/minifi-c2-docker/pom.xml @@ -72,6 +72,7 @@ limitations under the License. <UID>1000</UID> <GID>1000</GID> <MINIFI_C2_VERSION>${minifi.c2.version}</MINIFI_C2_VERSION> + <MINIFI_C2_BINARY_NAME>minifi-c2-${minifi.c2.version}-bin.zip</MINIFI_C2_BINARY_NAME> <MINIFI_C2_BINARY>target/minifi-c2-${minifi.c2.version}-bin.zip</MINIFI_C2_BINARY> </buildArgs> <repository>apacheminific2</repository> diff --git a/minifi/minifi-docker/dockermaven/Dockerfile b/minifi/minifi-docker/dockermaven/Dockerfile index 7d8e947d2f..2f6880fb42 100644 --- a/minifi/minifi-docker/dockermaven/Dockerfile +++ b/minifi/minifi-docker/dockermaven/Dockerfile @@ -18,24 +18,24 @@ ARG IMAGE_NAME=eclipse-temurin ARG IMAGE_TAG=11-jre -FROM ${IMAGE_NAME}:${IMAGE_TAG} -LABEL maintainer="Apache NiFi <[email protected]>" -LABEL site="https://nifi.apache.org" +FROM ${IMAGE_NAME}:${IMAGE_TAG} as builder +LABEL stage=builder # Values are set by Maven ARG UID ARG GID ARG MINIFI_VERSION +ARG MINIFI_BINARY_NAME ARG MINIFI_BINARY ARG MINIFI_SCRIPTS +ENV MINIFI_USER minifi ENV MINIFI_BASE_DIR /opt/minifi -ENV MINIFI_BINARY_NAME minifi-${MINIFI_VERSION}-bin.zip -ENV MINIFI_HOME $MINIFI_BASE_DIR/minifi-current +ENV MINIFI_HOME ${MINIFI_BASE_DIR}/minifi-current -RUN mkdir -p $MINIFI_BASE_DIR -COPY $MINIFI_BINARY $MINIFI_BASE_DIR -ADD $MINIFI_SCRIPTS ${MINIFI_BASE_DIR}/scripts +RUN mkdir -p ${MINIFI_BASE_DIR} +COPY ${MINIFI_BINARY} ${MINIFI_BASE_DIR} +ADD ${MINIFI_SCRIPTS} ${MINIFI_BASE_DIR}/scripts RUN apt-get update \ && apt-get install -y unzip \ @@ -44,13 +44,29 @@ RUN apt-get update \ && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* \ && unzip ${MINIFI_BASE_DIR}/${MINIFI_BINARY_NAME} -d ${MINIFI_BASE_DIR} \ && rm ${MINIFI_BASE_DIR}/${MINIFI_BINARY_NAME} \ - && groupadd -g ${GID} minifi \ - && useradd --shell /bin/bash -u ${UID} -g ${GID} -m minifi \ - && ln -s $MINIFI_BASE_DIR/minifi-$MINIFI_VERSION $MINIFI_HOME \ - && chown -R -L minifi:minifi $MINIFI_BASE_DIR \ + && groupadd -g ${GID} ${MINIFI_USER} \ + && useradd --shell /bin/bash -u ${UID} -g ${GID} -m ${MINIFI_USER} \ + && ln -s ${MINIFI_BASE_DIR}/minifi-${MINIFI_VERSION} ${MINIFI_HOME} \ + && chown -R ${MINIFI_USER}:${MINIFI_USER} ${MINIFI_BASE_DIR} \ && chmod -R +x ${MINIFI_BASE_DIR}/scripts/*.sh -USER minifi +FROM ${IMAGE_NAME}:${IMAGE_TAG} +LABEL maintainer="Apache NiFi <[email protected]>" +LABEL site="https://nifi.apache.org" + +ARG UID +ARG GID + +ENV MINIFI_USER minifi +ENV MINIFI_BASE_DIR /opt/minifi +ENV MINIFI_HOME ${MINIFI_BASE_DIR}/minifi-current + +RUN groupadd -g ${GID} ${MINIFI_USER} \ + && useradd --shell /bin/bash -u ${UID} -g ${GID} -m ${MINIFI_USER} + +COPY --from=builder ${MINIFI_BASE_DIR} ${MINIFI_BASE_DIR} + +USER ${MINIFI_USER} WORKDIR ${MINIFI_HOME} diff --git a/minifi/minifi-docker/pom.xml b/minifi/minifi-docker/pom.xml index 1ad4f31aa4..771817608f 100644 --- a/minifi/minifi-docker/pom.xml +++ b/minifi/minifi-docker/pom.xml @@ -91,6 +91,7 @@ limitations under the License. <UID>1000</UID> <GID>1000</GID> <MINIFI_VERSION>${minifi.version}</MINIFI_VERSION> + <MINIFI_BINARY_NAME>minifi-${minifi.version}-bin.zip</MINIFI_BINARY_NAME> <MINIFI_BINARY>target/minifi-${minifi.version}-bin.zip</MINIFI_BINARY> <MINIFI_SCRIPTS>target/sh</MINIFI_SCRIPTS> </buildArgs>
