现在我正在使用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容器文件夹直接映射到主机,如下所示:
services:
nifi:
...
volumes:
- ./conf:/opt/conf
- ./nifi_state:/data/nifi/state
...
无需额外的卷定义
请注意,在带有virtualbox的Windows下,此功能仅适用于当前用户目录。
或者,您只能使用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。