我正在docker中运行NiFi,并将所有相关目录安装为卷。我尝试修改nifi.properties文件中的某些设置,特别是添加自定义属性文件。但是,当我重新启动NiFi时,某些属性将恢复为原始值。
这是我当前的nifi.properties文件的一个示例:
nifi.ui.autorefresh.interval=5 sec
...
nifi.variable.registry.properties=
如果我将文件更改为以下内容:
nifi.ui.autorefresh.interval=3 sec
...
nifi.variable.registry.properties=./conf/custom.properties
然后重新启动NiFi,它将打印多行replacing target file /opt/nifi/nifi-current/conf/nifi.properties
,然后启动UI。当我再次检查nifi.properties文件时,它看起来像:
nifi.ui.autorefresh.interval=3 sec
...
nifi.variable.registry.properties=
由于某些原因,nifi.ui.autorefresh.interval属性将成功更新,但nifi.variable.registry.properties属性不会成功。
为什么有些价值观拒绝采用,如何让它们在启动过程中生存下来?
答案 0 :(得分:3)
有些道具只能用ENV vars设置(除了黑客攻击)。如果您看下面的命令,您可以找出来。如您所见, nifi.variable.registry.properties 是其中之一。
cat /opt/nifi/scripts/start.sh | grep prop_replace
prop_replace 'nifi.web.http.port' "${NIFI_WEB_HTTP_PORT:-8080}"
prop_replace 'nifi.web.http.host' "${NIFI_WEB_HTTP_HOST:-$HOSTNAME}"
prop_replace 'nifi.remote.input.host' "${NIFI_REMOTE_INPUT_HOST:-$HOSTNAME}"
prop_replace 'nifi.remote.input.socket.port' "${NIFI_REMOTE_INPUT_SOCKET_PORT:-10000}"
prop_replace 'nifi.remote.input.secure' 'false'
prop_replace 'baseUrl' "http://${NIFI_WEB_HTTP_HOST:-$HOSTNAME}:${NIFI_WEB_HTTP_PORT:-8080}" ${nifi_toolkit_props_file}
prop_replace 'nifi.variable.registry.properties' "${NIFI_VARIABLE_REGISTRY_PROPERTIES:-}"
prop_replace 'nifi.cluster.is.node' "${NIFI_CLUSTER_IS_NODE:-false}"
prop_replace 'nifi.cluster.node.address' "${NIFI_CLUSTER_ADDRESS:-$HOSTNAME}"
prop_replace 'nifi.cluster.node.protocol.port' "${NIFI_CLUSTER_NODE_PROTOCOL_PORT:-}"
prop_replace 'nifi.cluster.node.protocol.threads' "${NIFI_CLUSTER_NODE_PROTOCOL_THREADS:-10}"
prop_replace 'nifi.cluster.node.protocol.max.threads' "${NIFI_CLUSTER_NODE_PROTOCOL_MAX_THREADS:-50}"
prop_replace 'nifi.zookeeper.connect.string' "${NIFI_ZK_CONNECT_STRING:-}"
prop_replace 'nifi.zookeeper.root.node' "${NIFI_ZK_ROOT_NODE:-/nifi}"
prop_replace 'nifi.cluster.flow.election.max.wait.time' "${NIFI_ELECTION_MAX_WAIT:-5 mins}"
prop_replace 'nifi.cluster.flow.election.max.candidates' "${NIFI_ELECTION_MAX_CANDIDATES:-}"
prop_replace 'nifi.web.proxy.context.path' "${NIFI_WEB_PROXY_CONTEXT_PATH:-}"
prop_replace 'nifi.security.user.login.identity.provider' 'ldap-provider'
答案 1 :(得分:0)
可以在docker-compose.yaml中指定如下:
environment:
- NIFI_VARIABLE_REGISTRY_PROPERTIES={PATH HERE}