NIFI-10857 Fixed MiNiFi-C2 ITs and optimized MiNiFi and MiNiFi-C2 Docker images

This closes #6702

Signed-off-by: David Handermann <exceptionfactory@apache.org>
This commit is contained in:
Ferenc Kis 2022-11-18 14:30:51 +01:00 committed by exceptionfactory
parent 4ea425e235
commit 8b71edd61a
No known key found for this signature in database
GPG Key ID: 29B6A52D2AAE8DBA
6 changed files with 94 additions and 22 deletions

View File

@ -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>

View File

@ -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>

View File

@ -16,17 +16,19 @@
# under the License.
#
FROM eclipse-temurin:11-jre
LABEL maintainer="Apache NiFi <dev@nifi.apache.org>"
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}
USER c2
FROM ${IMAGE_NAME}:${IMAGE_TAG}
LABEL maintainer="Apache NiFi <dev@nifi.apache.org>"
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 ${MINIFI_C2_USER}
#Default http port
EXPOSE 10090

View File

@ -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>

View File

@ -18,24 +18,24 @@
ARG IMAGE_NAME=eclipse-temurin
ARG IMAGE_TAG=11-jre
FROM ${IMAGE_NAME}:${IMAGE_TAG}
LABEL maintainer="Apache NiFi <dev@nifi.apache.org>"
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 <dev@nifi.apache.org>"
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}

View File

@ -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>