| # 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"] |