1313# See the License for the specific language governing permissions and
1414# limitations under the License.
1515
16- FROM openjdk:8
16+ FROM openjdk:8-alpine3.9
1717
1818EXPOSE 42424
1919
20- WORKDIR /opt/accumulo-proxy
21-
2220ARG HADOOP_VERSION=3.2.1
2321ARG ZOOKEEPER_VERSION=3.5.7
2422ARG ACCUMULO_VERSION=2.0.0
2523ARG ACCUMULO_PROXY_VERSION=2.0.0-SNAPSHOT
2624
27- ARG HADOOP_HASH=a57962a24d178193349917730bf95cdc99bde9df
28- ARG ZOOKEEPER_HASH=619928c8553b62775119e3d7d143a4714a160365
29- ARG ACCUMULO_HASH=b72bf5c3dcaa25387933a032925046234f30e17a
25+ ARG HADOOP_SHA512_HASH=d62709c3d7144fcaafc60e18d0fa03d7d477cc813e45526f3646030cd87dbf010aeccf3f4ce795b57b08d2884b3a55f91fe9d74ac144992d2dfe444a4bbf34ee
26+ ARG ZOOKEEPER_SHA512_HASH=b9baa1ecb3d4dc0ef648ce7c74da4c5267ee89534c7614b8f27d3b0bc52004dcfbb8cecec810ffb7c8c45053daf8a5e849ce60ba241280fa1e2ab1d3b4990494
27+ ARG ACCUMULO_SHA512_HASH=1e2b822e0fd6ba5293b09203eb0c5cc230e9f111361634b4d5665b0ddd2b28f42d76699cb08aaeff9b3242efd5fe369bfc871a7dc361e935980889bcb7b4568f
3028
3129# Download from Apache mirrors instead of archive #9
3230ENV APACHE_DIST_URLS \
@@ -36,43 +34,55 @@ ENV APACHE_DIST_URLS \
3634 https://www.apache.org/dist/ \
3735 https://archive.apache.org/dist/
3836
37+ ENV HADOOP_HOME /opt/hadoop
38+ ENV ZOOKEEPER_HOME /opt/apache-zookeeper
39+ ENV ACCUMULO_HOME /opt/accumulo
40+
3941RUN set -eux; \
40- download_bin() { \
41- local f="$1" ; shift; \
42- local hash="$1" ; shift; \
43- local distFile="$1" ; shift; \
42+ download_verify_and_extract() { \
43+ local expectedHash="$1" ; \
44+ local distFile="$2" ; \
45+ local extractPath="$3" ; \
46+ local symlinkPath="$4" ; \
4447 local success=; \
4548 local distUrl=; \
4649 for distUrl in ${APACHE_DIST_URLS}; do \
47- if wget -nv -O "/tmp/${f}" "${distUrl}${distFile}" ; then \
48- success=1; \
50+ if wget -nv -O "/tmp/download.tar.gz" "${distUrl}${distFile}" ; then \
4951 # Checksum the download
50- echo "${hash}" "/tmp/${f}" | sha1sum -c -; \
52+ echo "${expectedHash} /tmp/download.tar.gz" | sha512sum -c -; \
53+ # Extract the download
54+ mkdir "${extractPath}" ; \
55+ tar xzf "/tmp/download.tar.gz" -C "${extractPath}" --strip 1;\
56+ # Symlink
57+ ln -s "${extractPath}" "${symlinkPath}" ; \
58+ # Tidy up the download
59+ rm -f "/tmp/download.tar.gz" ; \
60+ # Set success now we've done all our checks and tidied up
61+ success=1; \
5162 break; \
5263 fi; \
5364 done; \
5465 [ -n "${success}" ]; \
5566 };\
5667 \
57- download_bin "apache-zookeeper.tar.gz" "${ZOOKEEPER_HASH }" "zookeeper/zookeeper-${ZOOKEEPER_VERSION}/apache-zookeeper-${ZOOKEEPER_VERSION}-bin.tar.gz" ; \
58- download_bin "hadoop.tar.gz" "$HADOOP_HASH " "hadoop/core/hadoop-${HADOOP_VERSION}/hadoop-$HADOOP_VERSION.tar.gz" ; \
59- download_bin "accumulo.tar.gz" "${ACCUMULO_HASH }" "accumulo/${ACCUMULO_VERSION}/accumulo-${ACCUMULO_VERSION}-bin.tar.gz" ;
68+ download_verify_and_extract "${ZOOKEEPER_SHA512_HASH }" "zookeeper/zookeeper-${ZOOKEEPER_VERSION}/apache-zookeeper-${ZOOKEEPER_VERSION}-bin.tar.gz" "/opt/apache-zookeeper-${ZOOKEEPER_VERSION}" "${ZOOKEEPER_HOME} " ; \
69+ download_verify_and_extract "${HADOOP_SHA512_HASH} " "hadoop/core/hadoop-${HADOOP_VERSION}/hadoop-$HADOOP_VERSION.tar.gz" "/opt/hadoop-${HADOOP_VERSION}" "${HADOOP_HOME} " ; \
70+ download_verify_and_extract "${ACCUMULO_SHA512_HASH }" "accumulo/${ACCUMULO_VERSION}/accumulo-${ACCUMULO_VERSION}-bin.tar.gz" "/opt/accumulo-${ACCUMULO_VERSION}" "${ACCUMULO_HOME}" ;
6071
61- # Install the dependencies into /opt/
62- RUN tar xzf /tmp/hadoop.tar.gz -C /opt/ && ln -s /opt/hadoop-${HADOOP_VERSION} /opt/hadoop
63- RUN tar xzf /tmp/apache-zookeeper.tar.gz -C /opt/ && ln -s /opt/apache-zookeeper-${ZOOKEEPER_VERSION}-bin /opt/apache-zookeeper
64- RUN tar xzf /tmp/accumulo.tar.gz -C /opt/ && ln -s /opt/accumulo-${ACCUMULO_VERSION} /opt/accumulo && sed -i 's/\$ {ZOOKEEPER_HOME}\/\* /\$ {ZOOKEEPER_HOME}\/\*\:\$ {ZOOKEEPER_HOME}\/ lib\/\* /g' /opt/accumulo/conf/accumulo-env.sh
72+ # Fix the ZooKeeper classpath for Accumulo
73+ RUN sed -i 's/\$ {ZOOKEEPER_HOME}\/\* /\$ {ZOOKEEPER_HOME}\/\*\:\$ {ZOOKEEPER_HOME}\/ lib\/\* /g' /opt/accumulo/conf/accumulo-env.sh
6574
66- ENV HADOOP_HOME /opt/hadoop
67- ENV ZOOKEEPER_HOME /opt/apache-zookeeper
68- ENV ACCUMULO_HOME /opt/accumulo
75+ # Add bash as a dependency for accumulo-proxy and accumulo shell scripts
76+ RUN apk --no-cache add bash
6977
7078# Add the proxy binary
71- COPY target/accumulo-proxy-${ACCUMULO_PROXY_VERSION}-bin.tar.gz /tmp/
72- RUN tar xzf /tmp/accumulo-proxy-${ACCUMULO_PROXY_VERSION}-bin.tar.gz -C /opt/accumulo-proxy --strip 1
7379ENV ACCUMULO_PROXY_HOME /opt/accumulo-proxy
80+ ADD target/accumulo-proxy-${ACCUMULO_PROXY_VERSION}-bin.tar.gz /opt/
81+ RUN ln -s "/opt/accumulo-proxy-${ACCUMULO_PROXY_VERSION}/" "${ACCUMULO_PROXY_HOME}"
7482
7583# Ensure Accumulo is on the path.
7684ENV PATH "${PATH}:${ACCUMULO_HOME}/bin"
7785
86+ WORKDIR ${ACCUMULO_PROXY_HOME}
87+
7888CMD ["/opt/accumulo-proxy/bin/accumulo-proxy" , "-p" , "/opt/accumulo-proxy/conf/proxy.properties" ]
0 commit comments