shell csript to deploy NiFi
#!/bin/bash
# Passwords...
USER_PASSWORD="user_pass"
PGSQL_PASSWORD="PG_pass"
PGADMIN_PASSWORD="pgadmin_pass"
# Create network if it doesn't exist
if ! docker network inspect local_network &>/dev/null; then
echo "Creating docker network 'local_network'..."
docker network create --subnet=10.100.10.0/24 local_network
else
echo "Docker network 'local_network' already exists."
fi
# Run apache-nifi container (for testing use "-e NIFI_WEB_PROXY_HOST=your_domain.ca:8443 \")
docker run -d --name apache-nifi --network local_network -p 8443:8443 \
--restart unless-stopped \
-e NIFI_WEB_PROXY_HOST=your_domain:8443 \
-e SINGLE_USER_CREDENTIALS_USERNAME=admin \
-e SINGLE_USER_CREDENTIALS_PASSWORD="$USER_PASSWORD" \
-v /opt/nifi/data/dwh:/opt/nifi/nifi-current/dwh \
apache/nifi:latest
# Run postgres-db container
docker run -d --name postgres-db --network local_network -p 5432:5432 \
--restart unless-stopped \
-e POSTGRES_PASSWORD="$PGSQL_PASSWORD" \
-v /opt/nifi/data/postgres_data:/var/lib/postgresql/data \
postgres:latest
# Run pgadmin container
docker run -d --name pgadmin --network local_network -p 5050:80 \
--restart unless-stopped \
-e PGADMIN_DEFAULT_EMAIL=pgadmin@your_domain.ca \
-e PGADMIN_DEFAULT_PASSWORD="$PGADMIN_PASSWORD" \
-v /opt/nifi/data/pgadmin:/var/lib/pgadmin \
dpage/pgadmin4:latest
echo "All containers started."
# Now make sure the directory exists
docker exec apache-nifi mkdir -p /opt/nifi/nifi-current/some_dir_for_data_input
run it.
enjoy your Apache NiFi.