content: # 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
  # regarding copyright ownership. The ASF licenses this file
  # to you under the Apache License, Version 2.0 (the
  # "License"); you may not use this file except in compliance
  # with the License. You may obtain a copy of the License at
  #
  #   http://www.apache.org/licenses/LICENSE-2.0
  #
  # Unless required by applicable law or agreed to in writing,
  # software distributed under the License is distributed on an
  # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  # KIND, either express or implied. See the License for the
  # specific language governing permissions and limitations
  # under the License.
  #
  ARG BASE_IMAGE
  FROM ${BASE_IMAGE} as base_image
  LABEL maintainer="Apache NiFi <dev@nifi.apache.org>"
  
  ARG MINIFI_VERSION
  ARG ARCHIVE_LOCATION
  ARG INSTALL_PACKAGE_CMD
  
  ARG UID=1001
  ARG GID=1001
  
  ENV USER=minificpp
  ENV MINIFI_BASE_DIR=/opt/minifi
  ENV MINIFI_HOME=${MINIFI_BASE_DIR}/minifi-current
  ENV MINIFI_VERSIONED_HOME=${MINIFI_BASE_DIR}/nifi-minifi-cpp-${MINIFI_VERSION}
  
  
  RUN groupadd -g ${GID} ${USER} && useradd -m -g ${GID} ${USER} && \
      install -d -o ${USER} -g ${USER} ${MINIFI_BASE_DIR} && ln -s ${MINIFI_VERSIONED_HOME} ${MINIFI_HOME}
  
  ADD ${ARCHIVE_LOCATION} ${MINIFI_BASE_DIR}
  RUN chown -R ${USER}:${USER} /opt/minifi  \
      && /bin/bash -c "${INSTALL_PACKAGE_CMD}"
  
  USER ${USER}
  WORKDIR ${MINIFI_HOME}
  
  # Start MiNiFi CPP in the foreground
  CMD ["./bin/minifi.sh", "run"]
  