如何使用docker-compose来保存nifi流文件?

问题描述 投票:0回答:2

现在我正在使用nifi及其处理器来处理一些流媒体内容(mqtt监听器,json评估,文本替换,写入db ...)。我试图保持流文件,因此我做了一些卷映射(见下文)。但它不起作用;重新启动容器后,似乎不保存流文件...

有人能给我一个如何解决这个问题的提示吗?

nifi:
image: apache/nifi
restart: on-failure
ports:
  - "8000:8000"
networks:
  - traefik
environment:
  - NIFI_WEB_HTTP_PORT=8000
volumes:
  - nifi_conf:/opt/nifi/conf
  - nifi_state:/data/nifi/state
  - nifi_db:/opt/nifi/database_repository
  - nifi_flowfile:/opt/nifi/flowfile_repository
  - nifi_content:/opt/nifi/content_repository
  - nifi_provenance:/opt/nifi/provenance_repository 


volumes:
 nifi_provenance:{}
 nifi_flowfile: {}
 nifi_content: {}
 nifi_db: {}
 nifi_state: {}
 nifi_conf: {}

谢谢。

docker-compose apache-nifi
2个回答
4
投票

您可以将docker容器文件夹直接映射到主机,如下所示:

services:
  nifi:
    ...
    volumes:
      - ./conf:/opt/conf
      - ./nifi_state:/data/nifi/state
      ...

无需额外的卷定义

请注意,在带有virtualbox的Windows下,此功能仅适用于当前用户目录。


0
投票

或者,您只能使用docker-compose stop而不是docker-compose down,它不会移除您的容器,从而保持卷安装。

这意味着您不必执行任何卷映射,只需使用此基本docker-compose文件:

version: '2'
services:
  futa-nifi-lsc:
    environment:
      - NIFI_WEB_HTTP_PORT=9000
    image: apache/nifi:1.8.0
    volumes:
      - ./jdbc_driver:/opt/jdbc_driver
      - ./checkin_files:/opt/checkin_files
      - ./truststore:/opt/truststore
    ports:
      - "9000:9000"

有关更多信息,请阅读本文here

© www.soinside.com 2019 - 2024. All rights reserved.