Configuração
Apache Nifi
Docker Compose
docker-compose.yaml |
---|
| version: "3.3"
services:
apache-nifi:
build:
context: .
dockerfile: Dockerfile
container_name: apache-nifi
deploy:
resources:
limits:
cpus: '0.8'
memory: 4GB
restart: unless-stopped
ports:
- "8443:8443"
volumes:
- "./data:/opt/nifi/nifi-current/data-in"
- "./scripts:/opt/nifi/nifi-current/scripts"
- nifi_database:/opt/nifi/nifi-current/nifi_database
- flow_storage:/opt/nifi/nifi-current/flow_storage
networks:
- mysql
volumes:
nifi_database:
name: nifi_database
flow_storage:
name: nifi_flow_storage
networks:
mysql:
external: true
|
Dockerfile
Dockerfile |
---|
| FROM apache/nifi
USER root
# Instalando python no servidor.
RUN apt-get update && apt-get install python3 -y
USER nifi
WORKDIR /opt/nifi/nifi-current/
# Adicionando driver de conexão com o mysql.
RUN mkdir drivers
COPY apache/mysql-connector-j-8.0.33.jar drivers
# Aumentando memória da JVM para lidar com arquivos maiores.
RUN sed -i 's/512m/2048m/g' conf/bootstrap.conf
# Criando senha de acesso único ao apache.
RUN bin/nifi.sh set-single-user-credentials user apachenifi123
CMD bin/nifi.sh run
|
Rodando
Para rodar a imagem personalizada do apache nifi, com driver para conexão jdbc com o MySQL e usuário:
Banco de Dados
Docker Compose
docker-compose.yaml |
---|
| version: "3.3"
services:
mysql:
image: mysql:8.0
container_name: mysql
restart: always
ports:
- "3306:3306"
environment:
- MYSQL_ALLOW_EMPTY_PASSWORD=1
volumes:
- mysql:/var/lib/mysql
networks:
- mysql
volumes:
mysql:
external: true
networks:
mysql:
external: true
|
Scripts Iniciais
Para limpar a base após os testes, basta executar o script: