mirror of https://github.com/apache/nifi.git
68 lines
3.3 KiB
Markdown
68 lines
3.3 KiB
Markdown
<!--
|
|
Licensed to the Apache Software Foundation (ASF) under one or more
|
|
contributor license agreements. See the NOTICE file distributed with
|
|
this work for additional information regarding copyright ownership.
|
|
The ASF licenses this file to You under the Apache License, Version 2.0
|
|
(the "License"); you may not use this file except in compliance with
|
|
the License. You may obtain a copy of the License at
|
|
|
|
http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
Unless required by applicable law or agreed to in writing, software
|
|
distributed under the License is distributed on an "AS IS" BASIS,
|
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
See the License for the specific language governing permissions and
|
|
limitations under the License.
|
|
-->
|
|
# Docker Image Quickstart
|
|
|
|
|
|
## Building
|
|
The Docker image can be built using the following command:
|
|
|
|
docker build -t apache/nifi-minifi:latest .
|
|
|
|
This build will result in an image tagged apache/nifi:latest
|
|
|
|
# user @ puter in ~/Development/code/apache/nifi-minifi/minifi-docker/dockerhub
|
|
$ docker images
|
|
REPOSITORY TAG IMAGE ID CREATED SIZE
|
|
apache/nifi-minifi latest f0f564eed149 A long, long time ago 226MB
|
|
|
|
**Note**: The default version of NiFi specified by the Dockerfile is typically that of one that is unreleased if working from source.
|
|
To build an image for a prior released version, one can override the `NIFI_VERSION` build-arg with the following command:
|
|
|
|
docker build --build-arg=MINIFI_VERSION={Desired MiNiFi Version} -t apache/nifi-minifi:latest .
|
|
|
|
## Running a container
|
|
|
|
### Supplying configuration to a container
|
|
The primary means by which a MiNiFi instance is configured is via the `config.yml` or the `bootstrap.conf`.
|
|
|
|
This can be accomplished through:
|
|
* the use of volumes, and
|
|
* overlaying the base image
|
|
|
|
#### Using volumes to provide configuration
|
|
The following example shows the usage of two volumes to provide both a `config.yml` and a `bootstrap.conf` to the container instance. This makes use of configuration files on the host and maps them to be used by the MiNiFi instance. This is helpful in scenarios where a single image is used for a variety of configurations.
|
|
|
|
docker run -d \
|
|
-v ~/minifi-conf/config.yml:/opt/minifi/minifi-0.5.0/conf/config.yml \
|
|
-v ~/minifi-conf/bootstrap.conf:/opt/minifi/minifi-0.5.0/conf/bootstrap.conf \
|
|
apache/nifi-minifi:0.5.0
|
|
|
|
#### Using volumes to provide configuration
|
|
Alternatively, it is possible to create a custom image inheriting from the published image. Creating a `Dockerfile` extending from the Apache NiFi MiNiFi base image allows users to overlay the configuration permanently into a newly built and custom image. A simple example follows:
|
|
|
|
FROM apache/nifi-minifi
|
|
|
|
ADD config.yml /opt/minifi/minifi-0.5.0/conf/config.yml
|
|
ADD bootstrap.conf /opt/minifi/minifi-0.5.0/conf/bootstrap.conf
|
|
|
|
Building this `Dockerfile` will result in a custom image with the specified configuration files incorporated into the new image. This is best for applications where configuration is well defined and relatively static.
|
|
|
|
For more information, please consult [Dockerfile Reference: FROM](https://docs.docker.com/engine/reference/builder/#from)
|
|
|
|
|
|
|