[GitHub] nifi pull request #2747: NIFI-5249 Dockerfile enhancements

2018-06-14 Thread asfgit
Github user asfgit closed the pull request at:

https://github.com/apache/nifi/pull/2747


---


[GitHub] nifi pull request #2747: NIFI-5249 Dockerfile enhancements

2018-06-14 Thread pepov
Github user pepov commented on a diff in the pull request:

https://github.com/apache/nifi/pull/2747#discussion_r195312869
  
--- Diff: nifi-docker/dockermaven/Dockerfile ---
@@ -26,23 +26,33 @@ ARG NIFI_BINARY
 
 ENV NIFI_BASE_DIR /opt/nifi
 ENV NIFI_HOME $NIFI_BASE_DIR/nifi-$NIFI_VERSION
-
-# Setup NiFi user
-RUN groupadd -g $GID nifi || groupmod -n nifi `getent group $GID | cut -d: 
-f1` \
-&& useradd --shell /bin/bash -u $UID -g $GID -m nifi \
-&& mkdir -p $NIFI_HOME/conf/templates \
-&& chown -R nifi:nifi $NIFI_BASE_DIR
+ENV NIFI_PID_DIR=${NIFI_HOME}/run
+ENV NIFI_LOG_DIR=${NIFI_HOME}/logs
 
 ADD $NIFI_BINARY $NIFI_BASE_DIR
-RUN chown -R nifi:nifi $NIFI_HOME
+# Setup NiFi user and create necessary directories
+RUN groupadd -g ${GID} nifi || groupmod -n nifi `getent group ${GID} | cut 
-d: -f1` \
+&& useradd --shell /bin/bash -u ${UID} -g ${GID} -m nifi \
+&& mkdir -p ${NIFI_HOME}/conf/templates \
+&& mkdir -p $NIFI_BASE_DIR/data \
+&& mkdir -p $NIFI_BASE_DIR/flowfile_repository \
+&& mkdir -p $NIFI_BASE_DIR/content_repository \
+&& mkdir -p $NIFI_BASE_DIR/provenance_repository \
+&& mkdir -p $NIFI_LOG_DIR \
+&& chown -R nifi:nifi ${NIFI_BASE_DIR} \
+&& apt-get update \
+&& apt-get install -y jq xmlstarlet procps
 
 USER nifi
 
-# Web HTTP Port & Remote Site-to-Site Ports
-EXPOSE 8080 8181
+# Clear nifi-env.sh in favour of configuring all environment variables in 
the Dockerfile
+RUN echo "#!/bin/sh\n" > $NIFI_HOME/bin/nifi-env.sh
+
+# Web HTTP(s) & Socket Site-to-Site Ports
+EXPOSE 8080 8443 1
 
-WORKDIR $NIFI_HOME
+WORKDIR ${NIFI_HOME}
 
 # Startup NiFi
 ENTRYPOINT ["bin/nifi.sh"]
-CMD ["run"]
+CMD ["run"]
--- End diff --

I've just pushed what hopefully fixes this issue once and for all. 
Entrypoint and command instructions have their gotchas, and we have to be 
careful with those. Also added a comment what and why I changed around the 
entrypoint, please see in the commit: 
https://github.com/apache/nifi/pull/2747/commits/8aef89bfd3ec7d1771e6dd835c53a1ba1f61dda3#diff-2cef119cd914e1b710d41b387a0b72b2R61


---


[GitHub] nifi pull request #2747: NIFI-5249 Dockerfile enhancements

2018-06-14 Thread pepov
Github user pepov commented on a diff in the pull request:

https://github.com/apache/nifi/pull/2747#discussion_r195311227
  
--- Diff: nifi-docker/dockermaven/Dockerfile ---
@@ -26,23 +26,33 @@ ARG NIFI_BINARY
 
 ENV NIFI_BASE_DIR /opt/nifi
 ENV NIFI_HOME $NIFI_BASE_DIR/nifi-$NIFI_VERSION
-
-# Setup NiFi user
-RUN groupadd -g $GID nifi || groupmod -n nifi `getent group $GID | cut -d: 
-f1` \
-&& useradd --shell /bin/bash -u $UID -g $GID -m nifi \
-&& mkdir -p $NIFI_HOME/conf/templates \
-&& chown -R nifi:nifi $NIFI_BASE_DIR
+ENV NIFI_PID_DIR=${NIFI_HOME}/run
+ENV NIFI_LOG_DIR=${NIFI_HOME}/logs
 
 ADD $NIFI_BINARY $NIFI_BASE_DIR
-RUN chown -R nifi:nifi $NIFI_HOME
+# Setup NiFi user and create necessary directories
+RUN groupadd -g ${GID} nifi || groupmod -n nifi `getent group ${GID} | cut 
-d: -f1` \
+&& useradd --shell /bin/bash -u ${UID} -g ${GID} -m nifi \
+&& mkdir -p ${NIFI_HOME}/conf/templates \
+&& mkdir -p $NIFI_BASE_DIR/data \
+&& mkdir -p $NIFI_BASE_DIR/flowfile_repository \
+&& mkdir -p $NIFI_BASE_DIR/content_repository \
+&& mkdir -p $NIFI_BASE_DIR/provenance_repository \
+&& mkdir -p $NIFI_LOG_DIR \
+&& chown -R nifi:nifi ${NIFI_BASE_DIR} \
+&& apt-get update \
+&& apt-get install -y jq xmlstarlet procps
 
 USER nifi
 
-# Web HTTP Port & Remote Site-to-Site Ports
-EXPOSE 8080 8181
+# Clear nifi-env.sh in favour of configuring all environment variables in 
the Dockerfile
+RUN echo "#!/bin/sh\n" > $NIFI_HOME/bin/nifi-env.sh
+
+# Web HTTP(s) & Socket Site-to-Site Ports
+EXPOSE 8080 8443 1
 
-WORKDIR $NIFI_HOME
+WORKDIR ${NIFI_HOME}
 
 # Startup NiFi
 ENTRYPOINT ["bin/nifi.sh"]
-CMD ["run"]
+CMD ["run"]
--- End diff --

You're right I totally missed that. The biggest problem is that it is even 
the case with the dockerhub image, which is much more painful. I think I know 
what the problem is and working on the fix.


---


[GitHub] nifi pull request #2747: NIFI-5249 Dockerfile enhancements

2018-06-13 Thread jtstorck
Github user jtstorck commented on a diff in the pull request:

https://github.com/apache/nifi/pull/2747#discussion_r195304620
  
--- Diff: nifi-docker/dockermaven/Dockerfile ---
@@ -26,23 +26,33 @@ ARG NIFI_BINARY
 
 ENV NIFI_BASE_DIR /opt/nifi
 ENV NIFI_HOME $NIFI_BASE_DIR/nifi-$NIFI_VERSION
-
-# Setup NiFi user
-RUN groupadd -g $GID nifi || groupmod -n nifi `getent group $GID | cut -d: 
-f1` \
-&& useradd --shell /bin/bash -u $UID -g $GID -m nifi \
-&& mkdir -p $NIFI_HOME/conf/templates \
-&& chown -R nifi:nifi $NIFI_BASE_DIR
+ENV NIFI_PID_DIR=${NIFI_HOME}/run
+ENV NIFI_LOG_DIR=${NIFI_HOME}/logs
 
 ADD $NIFI_BINARY $NIFI_BASE_DIR
-RUN chown -R nifi:nifi $NIFI_HOME
+# Setup NiFi user and create necessary directories
+RUN groupadd -g ${GID} nifi || groupmod -n nifi `getent group ${GID} | cut 
-d: -f1` \
+&& useradd --shell /bin/bash -u ${UID} -g ${GID} -m nifi \
+&& mkdir -p ${NIFI_HOME}/conf/templates \
+&& mkdir -p $NIFI_BASE_DIR/data \
+&& mkdir -p $NIFI_BASE_DIR/flowfile_repository \
+&& mkdir -p $NIFI_BASE_DIR/content_repository \
+&& mkdir -p $NIFI_BASE_DIR/provenance_repository \
+&& mkdir -p $NIFI_LOG_DIR \
+&& chown -R nifi:nifi ${NIFI_BASE_DIR} \
+&& apt-get update \
+&& apt-get install -y jq xmlstarlet procps
 
 USER nifi
 
-# Web HTTP Port & Remote Site-to-Site Ports
-EXPOSE 8080 8181
+# Clear nifi-env.sh in favour of configuring all environment variables in 
the Dockerfile
+RUN echo "#!/bin/sh\n" > $NIFI_HOME/bin/nifi-env.sh
+
+# Web HTTP(s) & Socket Site-to-Site Ports
+EXPOSE 8080 8443 1
 
-WORKDIR $NIFI_HOME
+WORKDIR ${NIFI_HOME}
 
 # Startup NiFi
 ENTRYPOINT ["bin/nifi.sh"]
-CMD ["run"]
+CMD ["run"]
--- End diff --

I tried to use Ctrl-C after NiFi was successfully up and running to kill 
the container.  I had to open a new shell and use docker kill to bring it down. 
 Not a big deal, I still think that's due to docker and having started the 
container in a non-interactive and non-detached method.

For the logging, I'm not sure if there's a reason why the two docker 
modules have different wrapper scripts.  You could check with @apiri, but most 
likely it'd be good to bring them in line.  It doesn't have to be done in this 
PR, though it'd be nice to get this into the NiFi 1.7.0 release if no one 
disagrees with it.


---


[GitHub] nifi pull request #2747: NIFI-5249 Dockerfile enhancements

2018-06-13 Thread pepov
Github user pepov commented on a diff in the pull request:

https://github.com/apache/nifi/pull/2747#discussion_r195301228
  
--- Diff: nifi-docker/dockermaven/Dockerfile ---
@@ -26,23 +26,33 @@ ARG NIFI_BINARY
 
 ENV NIFI_BASE_DIR /opt/nifi
 ENV NIFI_HOME $NIFI_BASE_DIR/nifi-$NIFI_VERSION
-
-# Setup NiFi user
-RUN groupadd -g $GID nifi || groupmod -n nifi `getent group $GID | cut -d: 
-f1` \
-&& useradd --shell /bin/bash -u $UID -g $GID -m nifi \
-&& mkdir -p $NIFI_HOME/conf/templates \
-&& chown -R nifi:nifi $NIFI_BASE_DIR
+ENV NIFI_PID_DIR=${NIFI_HOME}/run
+ENV NIFI_LOG_DIR=${NIFI_HOME}/logs
 
 ADD $NIFI_BINARY $NIFI_BASE_DIR
-RUN chown -R nifi:nifi $NIFI_HOME
+# Setup NiFi user and create necessary directories
+RUN groupadd -g ${GID} nifi || groupmod -n nifi `getent group ${GID} | cut 
-d: -f1` \
+&& useradd --shell /bin/bash -u ${UID} -g ${GID} -m nifi \
+&& mkdir -p ${NIFI_HOME}/conf/templates \
+&& mkdir -p $NIFI_BASE_DIR/data \
+&& mkdir -p $NIFI_BASE_DIR/flowfile_repository \
+&& mkdir -p $NIFI_BASE_DIR/content_repository \
+&& mkdir -p $NIFI_BASE_DIR/provenance_repository \
+&& mkdir -p $NIFI_LOG_DIR \
+&& chown -R nifi:nifi ${NIFI_BASE_DIR} \
+&& apt-get update \
+&& apt-get install -y jq xmlstarlet procps
 
 USER nifi
 
-# Web HTTP Port & Remote Site-to-Site Ports
-EXPOSE 8080 8181
+# Clear nifi-env.sh in favour of configuring all environment variables in 
the Dockerfile
+RUN echo "#!/bin/sh\n" > $NIFI_HOME/bin/nifi-env.sh
+
+# Web HTTP(s) & Socket Site-to-Site Ports
+EXPOSE 8080 8443 1
 
-WORKDIR $NIFI_HOME
+WORKDIR ${NIFI_HOME}
 
 # Startup NiFi
 ENTRYPOINT ["bin/nifi.sh"]
-CMD ["run"]
+CMD ["run"]
--- End diff --

Ctrl-C works for me, even if it's somewhat slow while nifi is booting 
(faster when already booted).
The dockermaven image does not contain the wrapper scripts that the 
dockerhub one does, this is why tailing and sending all logs to stdout doesn't 
work. I wasn't sure that was intentional or not but I can add it to make the 
two environments more similar.


---


[GitHub] nifi pull request #2747: NIFI-5249 Dockerfile enhancements

2018-06-13 Thread jtstorck
Github user jtstorck commented on a diff in the pull request:

https://github.com/apache/nifi/pull/2747#discussion_r195240352
  
--- Diff: nifi-docker/dockermaven/integration-test.sh ---
@@ -0,0 +1,35 @@
+#!/bin/bash
--- End diff --

This script is missing the license, can you please add it?


---


[GitHub] nifi pull request #2747: NIFI-5249 Dockerfile enhancements

2018-06-13 Thread jtstorck
Github user jtstorck commented on a diff in the pull request:

https://github.com/apache/nifi/pull/2747#discussion_r195262129
  
--- Diff: nifi-docker/dockermaven/Dockerfile ---
@@ -26,23 +26,33 @@ ARG NIFI_BINARY
 
 ENV NIFI_BASE_DIR /opt/nifi
 ENV NIFI_HOME $NIFI_BASE_DIR/nifi-$NIFI_VERSION
-
-# Setup NiFi user
-RUN groupadd -g $GID nifi || groupmod -n nifi `getent group $GID | cut -d: 
-f1` \
-&& useradd --shell /bin/bash -u $UID -g $GID -m nifi \
-&& mkdir -p $NIFI_HOME/conf/templates \
-&& chown -R nifi:nifi $NIFI_BASE_DIR
+ENV NIFI_PID_DIR=${NIFI_HOME}/run
+ENV NIFI_LOG_DIR=${NIFI_HOME}/logs
 
 ADD $NIFI_BINARY $NIFI_BASE_DIR
-RUN chown -R nifi:nifi $NIFI_HOME
+# Setup NiFi user and create necessary directories
+RUN groupadd -g ${GID} nifi || groupmod -n nifi `getent group ${GID} | cut 
-d: -f1` \
+&& useradd --shell /bin/bash -u ${UID} -g ${GID} -m nifi \
+&& mkdir -p ${NIFI_HOME}/conf/templates \
+&& mkdir -p $NIFI_BASE_DIR/data \
+&& mkdir -p $NIFI_BASE_DIR/flowfile_repository \
+&& mkdir -p $NIFI_BASE_DIR/content_repository \
+&& mkdir -p $NIFI_BASE_DIR/provenance_repository \
+&& mkdir -p $NIFI_LOG_DIR \
+&& chown -R nifi:nifi ${NIFI_BASE_DIR} \
+&& apt-get update \
+&& apt-get install -y jq xmlstarlet procps
 
 USER nifi
 
-# Web HTTP Port & Remote Site-to-Site Ports
-EXPOSE 8080 8181
+# Clear nifi-env.sh in favour of configuring all environment variables in 
the Dockerfile
+RUN echo "#!/bin/sh\n" > $NIFI_HOME/bin/nifi-env.sh
+
+# Web HTTP(s) & Socket Site-to-Site Ports
+EXPOSE 8080 8443 1
 
-WORKDIR $NIFI_HOME
+WORKDIR ${NIFI_HOME}
 
 # Startup NiFi
 ENTRYPOINT ["bin/nifi.sh"]
-CMD ["run"]
+CMD ["run"]
--- End diff --

Creating a container with:
`docker run -p 8080:8080 apache/nifi:1.7.0-SNAPSHOT-dockermaven`
results in NiFi starting successfully, but I'm unable to control-c out of 
the container.  I'm not a docker expert, but I would expect that hitting 
control-c would kill the container.  Although, since I didn't run it in 
interactive mode, this is probably a docker thing, not specific to this 
Dockerfile.

Starting the container with:
`docker run -d -p 8080:8080 apache/nifi:1.7.0-SNAPSHOT-dockermaven`
and then issuing:
`docker logs `
I see the nifi-bootstrap output, but not the nifi-app.log and nifi-user.log 
output.  Would it be preferable to have this behavior?  


---


[GitHub] nifi pull request #2747: NIFI-5249 Dockerfile enhancements

2018-06-11 Thread zenfenan
Github user zenfenan commented on a diff in the pull request:

https://github.com/apache/nifi/pull/2747#discussion_r194404103
  
--- Diff: nifi-docker/dockermaven/pom.xml ---
@@ -44,7 +44,6 @@
 
 apache/nifi
 ${project.version}
-latest
--- End diff --

Understood. Thanks.


---


[GitHub] nifi pull request #2747: NIFI-5249 Dockerfile enhancements

2018-06-05 Thread pepov
Github user pepov commented on a diff in the pull request:

https://github.com/apache/nifi/pull/2747#discussion_r192981828
  
--- Diff: nifi-docker/dockerhub/Dockerfile ---
@@ -25,28 +25,37 @@ ARG GID=1000
 ARG NIFI_VERSION=1.7.0
 ARG MIRROR=https://archive.apache.org/dist
 
-ENV NIFI_BASE_DIR /opt/nifi 
+ENV NIFI_BASE_DIR /opt/nifi
 ENV NIFI_HOME=${NIFI_BASE_DIR}/nifi-${NIFI_VERSION} \
 NIFI_BINARY_URL=/nifi/${NIFI_VERSION}/nifi-${NIFI_VERSION}-bin.tar.gz
+ENV NIFI_PID_DIR=${NIFI_HOME}/run
+ENV NIFI_LOG_DIR=${NIFI_HOME}/logs
 
 ADD sh/ /opt/nifi/scripts/
 
-# Setup NiFi user
+# Setup NiFi user and create necessary directories
 RUN groupadd -g ${GID} nifi || groupmod -n nifi `getent group ${GID} | cut 
-d: -f1` \
 && useradd --shell /bin/bash -u ${UID} -g ${GID} -m nifi \
 && mkdir -p ${NIFI_HOME}/conf/templates \
+&& mkdir -p $NIFI_BASE_DIR/data \
+&& mkdir -p $NIFI_BASE_DIR/flowfile_repository \
+&& mkdir -p $NIFI_BASE_DIR/content_repository \
+&& mkdir -p $NIFI_BASE_DIR/provenance_repository \
+&& mkdir -p $NIFI_LOG_DIR \
 && chown -R nifi:nifi ${NIFI_BASE_DIR} \
 && apt-get update \
-&& apt-get install -y jq xmlstarlet
+&& apt-get install -y jq xmlstarlet procps
 
 USER nifi
 
 # Download, validate, and expand Apache NiFi binary.
 RUN curl -fSL ${MIRROR}/${NIFI_BINARY_URL} -o 
${NIFI_BASE_DIR}/nifi-${NIFI_VERSION}-bin.tar.gz \
-&& echo "$(curl 
https://archive.apache.org/dist/${NIFI_BINARY_URL}.sha256) 
*${NIFI_BASE_DIR}/nifi-${NIFI_VERSION}-bin.tar.gz" | sha256sum -c - \
+&& echo "$(curl ${MIRROR}/${NIFI_BINARY_URL}.sha256) 
*${NIFI_BASE_DIR}/nifi-${NIFI_VERSION}-bin.tar.gz" | sha256sum -c - \
--- End diff --

I've restored the hardcoded url


---


[GitHub] nifi pull request #2747: NIFI-5249 Dockerfile enhancements

2018-06-04 Thread apiri
Github user apiri commented on a diff in the pull request:

https://github.com/apache/nifi/pull/2747#discussion_r192803756
  
--- Diff: nifi-docker/dockerhub/Dockerfile ---
@@ -25,28 +25,37 @@ ARG GID=1000
 ARG NIFI_VERSION=1.7.0
 ARG MIRROR=https://archive.apache.org/dist
 
-ENV NIFI_BASE_DIR /opt/nifi 
+ENV NIFI_BASE_DIR /opt/nifi
 ENV NIFI_HOME=${NIFI_BASE_DIR}/nifi-${NIFI_VERSION} \
 NIFI_BINARY_URL=/nifi/${NIFI_VERSION}/nifi-${NIFI_VERSION}-bin.tar.gz
+ENV NIFI_PID_DIR=${NIFI_HOME}/run
+ENV NIFI_LOG_DIR=${NIFI_HOME}/logs
 
 ADD sh/ /opt/nifi/scripts/
 
-# Setup NiFi user
+# Setup NiFi user and create necessary directories
 RUN groupadd -g ${GID} nifi || groupmod -n nifi `getent group ${GID} | cut 
-d: -f1` \
 && useradd --shell /bin/bash -u ${UID} -g ${GID} -m nifi \
 && mkdir -p ${NIFI_HOME}/conf/templates \
+&& mkdir -p $NIFI_BASE_DIR/data \
+&& mkdir -p $NIFI_BASE_DIR/flowfile_repository \
+&& mkdir -p $NIFI_BASE_DIR/content_repository \
+&& mkdir -p $NIFI_BASE_DIR/provenance_repository \
+&& mkdir -p $NIFI_LOG_DIR \
 && chown -R nifi:nifi ${NIFI_BASE_DIR} \
 && apt-get update \
-&& apt-get install -y jq xmlstarlet
+&& apt-get install -y jq xmlstarlet procps
 
 USER nifi
 
 # Download, validate, and expand Apache NiFi binary.
 RUN curl -fSL ${MIRROR}/${NIFI_BINARY_URL} -o 
${NIFI_BASE_DIR}/nifi-${NIFI_VERSION}-bin.tar.gz \
-&& echo "$(curl 
https://archive.apache.org/dist/${NIFI_BINARY_URL}.sha256) 
*${NIFI_BASE_DIR}/nifi-${NIFI_VERSION}-bin.tar.gz" | sha256sum -c - \
+&& echo "$(curl ${MIRROR}/${NIFI_BINARY_URL}.sha256) 
*${NIFI_BASE_DIR}/nifi-${NIFI_VERSION}-bin.tar.gz" | sha256sum -c - \
--- End diff --

@pepov It is an automated build in Docker Hub.  The Dockerfile is used as 
shown without any external arguments when a rel/nifi- tag is created


---


[GitHub] nifi pull request #2747: NIFI-5249 Dockerfile enhancements

2018-06-04 Thread pepov
Github user pepov commented on a diff in the pull request:

https://github.com/apache/nifi/pull/2747#discussion_r192787369
  
--- Diff: nifi-docker/dockermaven/pom.xml ---
@@ -44,7 +44,6 @@
 
 apache/nifi
 ${project.version}
-latest
--- End diff --

I removed it because it did not build both tags, just the last one, so I 
had a choice. Also this is only a dev/test config and does not affect the 
public image.


---


[GitHub] nifi pull request #2747: NIFI-5249 Dockerfile enhancements

2018-06-04 Thread pepov
Github user pepov commented on a diff in the pull request:

https://github.com/apache/nifi/pull/2747#discussion_r192781212
  
--- Diff: nifi-docker/dockerhub/Dockerfile ---
@@ -25,28 +25,37 @@ ARG GID=1000
 ARG NIFI_VERSION=1.7.0
 ARG MIRROR=https://archive.apache.org/dist
 
-ENV NIFI_BASE_DIR /opt/nifi 
+ENV NIFI_BASE_DIR /opt/nifi
 ENV NIFI_HOME=${NIFI_BASE_DIR}/nifi-${NIFI_VERSION} \
 NIFI_BINARY_URL=/nifi/${NIFI_VERSION}/nifi-${NIFI_VERSION}-bin.tar.gz
+ENV NIFI_PID_DIR=${NIFI_HOME}/run
+ENV NIFI_LOG_DIR=${NIFI_HOME}/logs
 
 ADD sh/ /opt/nifi/scripts/
 
-# Setup NiFi user
+# Setup NiFi user and create necessary directories
 RUN groupadd -g ${GID} nifi || groupmod -n nifi `getent group ${GID} | cut 
-d: -f1` \
 && useradd --shell /bin/bash -u ${UID} -g ${GID} -m nifi \
 && mkdir -p ${NIFI_HOME}/conf/templates \
+&& mkdir -p $NIFI_BASE_DIR/data \
+&& mkdir -p $NIFI_BASE_DIR/flowfile_repository \
+&& mkdir -p $NIFI_BASE_DIR/content_repository \
+&& mkdir -p $NIFI_BASE_DIR/provenance_repository \
+&& mkdir -p $NIFI_LOG_DIR \
 && chown -R nifi:nifi ${NIFI_BASE_DIR} \
 && apt-get update \
-&& apt-get install -y jq xmlstarlet
+&& apt-get install -y jq xmlstarlet procps
 
 USER nifi
 
 # Download, validate, and expand Apache NiFi binary.
 RUN curl -fSL ${MIRROR}/${NIFI_BINARY_URL} -o 
${NIFI_BASE_DIR}/nifi-${NIFI_VERSION}-bin.tar.gz \
-&& echo "$(curl 
https://archive.apache.org/dist/${NIFI_BINARY_URL}.sha256) 
*${NIFI_BASE_DIR}/nifi-${NIFI_VERSION}-bin.tar.gz" | sha256sum -c - \
+&& echo "$(curl ${MIRROR}/${NIFI_BINARY_URL}.sha256) 
*${NIFI_BASE_DIR}/nifi-${NIFI_VERSION}-bin.tar.gz" | sha256sum -c - \
--- End diff --

Ok, I just borrowed it from @markap14 and it made sense since the value is 
the same. Where can we see the build config of the public docker image?


---


[GitHub] nifi pull request #2747: NIFI-5249 Dockerfile enhancements

2018-06-04 Thread jtstorck
Github user jtstorck commented on a diff in the pull request:

https://github.com/apache/nifi/pull/2747#discussion_r192208160
  
--- Diff: nifi-docker/dockerhub/Dockerfile ---
@@ -25,28 +25,37 @@ ARG GID=1000
 ARG NIFI_VERSION=1.7.0
 ARG MIRROR=https://archive.apache.org/dist
 
-ENV NIFI_BASE_DIR /opt/nifi 
+ENV NIFI_BASE_DIR /opt/nifi
 ENV NIFI_HOME=${NIFI_BASE_DIR}/nifi-${NIFI_VERSION} \
 NIFI_BINARY_URL=/nifi/${NIFI_VERSION}/nifi-${NIFI_VERSION}-bin.tar.gz
+ENV NIFI_PID_DIR=${NIFI_HOME}/run
+ENV NIFI_LOG_DIR=${NIFI_HOME}/logs
 
 ADD sh/ /opt/nifi/scripts/
 
-# Setup NiFi user
+# Setup NiFi user and create necessary directories
 RUN groupadd -g ${GID} nifi || groupmod -n nifi `getent group ${GID} | cut 
-d: -f1` \
 && useradd --shell /bin/bash -u ${UID} -g ${GID} -m nifi \
 && mkdir -p ${NIFI_HOME}/conf/templates \
+&& mkdir -p $NIFI_BASE_DIR/data \
+&& mkdir -p $NIFI_BASE_DIR/flowfile_repository \
+&& mkdir -p $NIFI_BASE_DIR/content_repository \
+&& mkdir -p $NIFI_BASE_DIR/provenance_repository \
+&& mkdir -p $NIFI_LOG_DIR \
 && chown -R nifi:nifi ${NIFI_BASE_DIR} \
 && apt-get update \
-&& apt-get install -y jq xmlstarlet
+&& apt-get install -y jq xmlstarlet procps
 
 USER nifi
 
 # Download, validate, and expand Apache NiFi binary.
 RUN curl -fSL ${MIRROR}/${NIFI_BINARY_URL} -o 
${NIFI_BASE_DIR}/nifi-${NIFI_VERSION}-bin.tar.gz \
-&& echo "$(curl 
https://archive.apache.org/dist/${NIFI_BINARY_URL}.sha256) 
*${NIFI_BASE_DIR}/nifi-${NIFI_VERSION}-bin.tar.gz" | sha256sum -c - \
+&& echo "$(curl ${MIRROR}/${NIFI_BINARY_URL}.sha256) 
*${NIFI_BASE_DIR}/nifi-${NIFI_VERSION}-bin.tar.gz" | sha256sum -c - \
--- End diff --

@pepov I would suggest removing the MIRROR build arg from this line and 
reverting back to the apache archive, since from what @apiri has told me, only 
the Apache archive will host the SHA files to verify the archive.  A mirror 
will not contain those.

Also, there's a caveat with using a mirror.  If you're not building a 
version that still exists on the mirror (which should be current and 
current-1), the build will fail, if that version has been removed/rolled off 
from the mirror.


---


[GitHub] nifi pull request #2747: NIFI-5249 Dockerfile enhancements

2018-06-04 Thread zenfenan
Github user zenfenan commented on a diff in the pull request:

https://github.com/apache/nifi/pull/2747#discussion_r192756076
  
--- Diff: nifi-docker/dockermaven/pom.xml ---
@@ -44,7 +44,6 @@
 
 apache/nifi
 ${project.version}
-latest
--- End diff --

Why was this removed? When we do a release, I believe we want to keep that 
release as the latest.


---


[GitHub] nifi pull request #2747: NIFI-5249 Dockerfile enhancements

2018-05-30 Thread pepov
GitHub user pepov opened a pull request:

https://github.com/apache/nifi/pull/2747

NIFI-5249 Dockerfile enhancements

- Createdata repository and log directories
- Add explicit environment variable declarations to replace nifi-env.sh
- Remove obsolete chown commands after user has already been switched to 
nifi

How I tested the changes:
- I've ran `mvn package -P docker` in the nifi-docker folder to build the 
image. 
- I've made sure that `docker run --rm -ti apache/nifi` runs and start nifi 
using the new image
- Made sure that all files are owned by the nifi user under /opt/nifi: 
`docker run --rm -ti --entrypoint /bin/bash apache/nifi -c "find /opt/nifi ! 
-user nifi"`
- Checked that the expected environment variables are set:
```
docker run --rm -ti --entrypoint /bin/bash apache/nifi -c "env | grep NIFI"
NIFI_HOME=/opt/nifi/nifi-1.7.0-SNAPSHOT
NIFI_LOG_DIR=/opt/nifi/nifi-1.7.0-SNAPSHOT/logs
NIFI_PID_DIR=/opt/nifi/nifi-1.7.0-SNAPSHOT/run
NIFI_BASE_DIR=/opt/nifi
```

Thank you for submitting a contribution to Apache NiFi.

In order to streamline the review of the contribution we ask you
to ensure the following steps have been taken:

### For all changes:
- [x] Is there a JIRA ticket associated with this PR? Is it referenced 
 in the commit message?

- [x] Does your PR title start with NIFI- where  is the JIRA number 
you are trying to resolve? Pay particular attention to the hyphen "-" character.

- [x] Has your PR been rebased against the latest commit within the target 
branch (typically master)?

- [x] Is your initial contribution a single, squashed commit?

### For code changes:
- [ ] Have you ensured that the full suite of tests is executed via mvn 
-Pcontrib-check clean install at the root nifi folder?
- [ ] Have you written or updated unit tests to verify your changes?
- [ ] If adding new dependencies to the code, are these dependencies 
licensed in a way that is compatible for inclusion under [ASF 
2.0](http://www.apache.org/legal/resolved.html#category-a)? 
- [ ] If applicable, have you updated the LICENSE file, including the main 
LICENSE file under nifi-assembly?
- [ ] If applicable, have you updated the NOTICE file, including the main 
NOTICE file found under nifi-assembly?
- [ ] If adding new Properties, have you added .displayName in addition to 
.name (programmatic access) for each of the new properties?

### For documentation related changes:
- [ ] Have you ensured that format looks appropriate for the output in 
which it is rendered?

### Note:
Please ensure that once the PR is submitted, you check travis-ci for build 
issues and submit an update to your PR as soon as possible.


You can merge this pull request into a Git repository by running:

$ git pull https://github.com/pepov/nifi NIFI-5249

Alternatively you can review and apply these changes as the patch at:

https://github.com/apache/nifi/pull/2747.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

This closes #2747


commit fb0b515c565cc532169a03eb7c4a59027d818718
Author: pepov 
Date:   2018-05-29T11:27:45Z

NIFI-5249 Dockerfile enhancements: create data repository and log 
directories, explicit environment variable declarations to replace nifi-env.sh




---