Provides a Dockerfile and associated scripts for configuring an instance of Apache NiFi to run with certificate authentication.
From your checkout directory:
-
Build the image
docker build -t aldrin/apache-nifi . -
Run the image
docker run -i -t --rm \ -p 8443:443 \ -v ${cert_path}:/opt/certs \ -v $(readlink -f ./authorized-users.xml):/opt/nifi/conf/authorized-users.xml \ -e KEYSTORE_PATH=/opt/certs/keystore.jks \ -e KEYSTORE_TYPE=JKS \ -e KEYSTORE_PASSWORD=password \ -e TRUSTSTORE_PATH=/opt/certs/truststore.jks \ -e TRUSTSTORE_PASSWORD=password \ -e TRUSTSTORE_TYPE=JKS \ aldrin/apache-nifi-p 8443:443exposes the UI at port 8443 on the Docker host system-v ${cert_path}:/opt/certsmaps the 'cert_path' location on the host system to the container as the source of the relevant keystores-i -tAllocates a TTY and keeps STDIN open-v $(readlink -f ./authorized-users.xml):/opt/nifi/conf/authorized-users.xmlMaps an authorized-users.xml into the container over the default one provided -
Wait for the image to initalize
2015-03-21 18:14:37,879 INFO [main] org.apache.nifi.web.server.JettyServer NiFi has started. The UI is available at the following URLs: 2015-03-21 18:14:37,880 INFO [main] org.apache.nifi.web.server.JettyServer https://172.17.0.37:443/nifi 2015-03-21 18:14:37,880 INFO [main] org.apache.nifi.web.server.JettyServer https://127.0.0.1:443/nifi 2015-03-21 18:14:37,880 INFO [main] org.apache.nifi.NiFi Controller initialization took 4572051363 nanoseconds. -
Access through your Docker host system
https://localhost:8443/nifi -
Stopping
- From the terminal used to start the container above, perform a
Ctrl+Cto send the interrupt to the container. - Alternatively, execute a docker command for the container via a
docker stop <container id>ordocker kill <container id>
- The Dockerfile specifies an environment variable
NIFI_HOMEvia theENVcommand
- The following directories are exposed as volumes which may optionally be mounted to a specified location
/opt/certs${NIFI_HOME}/flowfile_repository${NIFI_HOME}/content_repository${NIFI_HOME}/database_repository${NIFI_HOME}/provenance_repository
