如何在不终止容器的情况下向运行的Docker Nifi添加自定义NAR?

问题描述

环境

在Ubuntu 18.04.4 LTS上的Docker 18.09.7中运行的Apache Nifi 1.12.1

问题

如何在不终止容器的情况下向Docker中运行的Nifi添加现有的自定义NAR。

尝试

我有一个从主机到容器的挂载,可以放下NAR。

#1重新启动Nifi

然后我将NAR复制到/lib目录中。

重新启动Nifi,但这会杀死容器

#2将NAR从安装目录复制到/extensions目录

按照: https://www.nifi.rocks/auto-loading-extensions/

但是什么也没发生

我需要能够在不丢失容器的情况下向Nifi添加NAR

任何帮助/提示将不胜感激

docker-compose.yml

version: '3'

services:
    nifi:
        build: ./nifi
        container_name: nifi
        ports:
            - 7777:8080
        volumes:
        - ./data:/opt/nifi/nifi-current/data

Dockerfile

FROM apache/nifi:latest

RUN mkdir /opt/nifi/nifi-current/data
RUN chown -R nifi:nifi /opt/nifi/nifi-current/data

EXPOSE 8080

编辑

看起来像是将NAR的副本复制到/extensions目录中,正在加载NAR

020-10-06 10:35:15,707 INFO [NAR Auto-Loader] org.apache.nifi.nar.StandardNarLoader Starting load process for 1 NARs...
2020-10-06 10:35:15,836 INFO [NAR Auto-Loader] org.apache.nifi.nar.StandardNarLoader Creating class loaders for 1 NARs...
2020-10-06 10:35:15,838 INFO [NAR Auto-Loader] org.apache.nifi.nar.NarClassLoaders Loaded NAR file: /opt/nifi/nifi-current/./work/nar/extensions/my-nar-1.0-SNAPSHOT.nar-unpacked as class loader org.apache.nifi.nar.NarClassLoader[./work/nar/extensions/my-nar-1.0-SNAPSHOT.nar-unpacked]
2020-10-06 10:35:15,838 INFO [NAR Auto-Loader] org.apache.nifi.nar.StandardNarLoader Successfully created class loaders for 1 NARs,0 were skipped
2020-10-06 10:35:16,076 INFO [NAR Auto-Loader] org.apache.nifi.nar.StandardNarLoader Finished NAR l

但是它没有显示Add Processor列表中...

编辑

只需刷新浏览器中的Nifi UI即可看到处理器

解决方法

解决方案

#2将NAR从安装目录复制到/ extensions dir

所以我将NAR放到已挂载的目录中,然后将NAR复制到 /extensions

nifi-app.log中可以看到正在加载的NAR

然后刷新UI和处理器可以添加到画布