summaryrefslogtreecommitdiffstats
path: root/src/main/docker/Dockerfile
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/docker/Dockerfile')
-rw-r--r--src/main/docker/Dockerfile122
1 files changed, 70 insertions, 52 deletions
diff --git a/src/main/docker/Dockerfile b/src/main/docker/Dockerfile
index 7e0d715..30e3a03 100644
--- a/src/main/docker/Dockerfile
+++ b/src/main/docker/Dockerfile
@@ -1,66 +1,84 @@
-FROM ubuntu:16.04
+# git helper image
+FROM alpine:3.9 as githelper
+RUN apk add --no-cache git
+# Copy APIKeys
+RUN git init /zookeeper/gerrit \
+ && cd /zookeeper/gerrit \
+ && git remote add origin http://gerrit.onap.org/r/dmaap/messagerouter/messageservice.git \
+ && git config core.sparsecheckout true \
+ && echo "oom-topics/data-zookeeper/*" >> .git/info/sparse-checkout \
+ && git pull --depth=1 origin master
+
+# main image build
+FROM docker.io/zookeeper:${zookeeper.dist.version}
+
+ARG ZK_DIST=zookeeper-${zookeeper.dist.version}
ENV ZK_USER=mrzookeeper \
ZK_DATA_DIR=/var/lib/zookeeper/data \
ZK_LOG_DIR=/var/log/zookeeper \
- JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
+ ZK_CONF_DIR=/opt/zookeeper/conf \
+ ZK_DIST_VER=$ZK_DIST
+# passing config path to upstream image
+ENV ZOOCFGDIR=$ZK_CONF_DIR
-ARG ZK_DIST=zookeeper-3.4.9
+# copy API-keys from githelper
+COPY --from=githelper /zookeeper/gerrit/oom-topics /tmp/zookeeper/gerrit/oom-topics
-RUN set -x \
- && apt-get update \
- && apt-get install -y openjdk-8-jre-headless wget netcat-openbsd \
- && apt-get install -y git \
- && wget -q "http://archive.apache.org/dist/zookeeper/$ZK_DIST/$ZK_DIST.tar.gz" \
- && wget -q "http://archive.apache.org/dist/zookeeper/$ZK_DIST/$ZK_DIST.tar.gz.asc" \
- && tar -xzf "$ZK_DIST.tar.gz" -C /opt \
- && rm -r "$ZK_DIST.tar.gz" "$ZK_DIST.tar.gz.asc" \
- && ln -s /opt/$ZK_DIST /opt/zookeeper \
- && rm -rf /opt/zookeeper/CHANGES.txt \
- /opt/zookeeper/README.txt \
- /opt/zookeeper/NOTICE.txt \
- /opt/zookeeper/CHANGES.txt \
- /opt/zookeeper/README_packaging.txt \
- /opt/zookeeper/build.xml \
- /opt/zookeeper/config \
- /opt/zookeeper/contrib \
- /opt/zookeeper/dist-maven \
- /opt/zookeeper/docs \
- /opt/zookeeper/ivy.xml \
- /opt/zookeeper/ivysettings.xml \
- /opt/zookeeper/recipes \
- /opt/zookeeper/src \
- /opt/zookeeper/$ZK_DIST.jar.asc \
- /opt/zookeeper/$ZK_DIST.jar.md5 \
- /opt/zookeeper/$ZK_DIST.jar.sha1 \
- && apt-get autoremove -y wget \
- && rm -rf /var/lib/apt/lists/*
+# Create required directories and configure file system ownership
+# for necessary directories and symlink the distribution as a user executable
+# and remove unecessary files
+RUN mkdir -p \
+ /opt \
+ /usr/etc \
+ /usr/share/zookeeper \
+ $ZK_DATA_DIR \
+ $ZK_LOG_DIR \
+ && ln -snf /$ZK_DIST_VER/ /opt/zookeeper \
+ && ln -snf /opt/zookeeper/conf/ /usr/etc/zookeeper \
+ && ln -snf /opt/zookeeper/bin/* /usr/bin \
+ && ln -snf /opt/zookeeper/$ZK_DIST_VER.jar /usr/share/zookeeper \
+ && ln -snf /opt/zookeeper/lib/* /usr/share/zookeeper \
+ && rm -rf \
+ /conf \
+ /home/zookeeper \
+ /docker-entrypoint.sh \
+ /opt/zookeeper/CHANGES.txt \
+ /opt/zookeeper/README.txt \
+ /opt/zookeeper/NOTICE.txt \
+ /opt/zookeeper/CHANGES.txt \
+ /opt/zookeeper/README_packaging.txt \
+ /opt/zookeeper/build.xml \
+ /opt/zookeeper/config \
+ /opt/zookeeper/contrib \
+ /opt/zookeeper/dist-maven \
+ /opt/zookeeper/docs \
+ /opt/zookeeper/ivy.xml \
+ /opt/zookeeper/ivysettings.xml \
+ /opt/zookeeper/recipes \
+ /opt/zookeeper/src \
+ /opt/zookeeper/$ZK_DIST_VER.jar.asc \
+ /opt/zookeeper/$ZK_DIST_VER.jar.md5 \
+ /opt/zookeeper/$ZK_DIST_VER.jar.sha1
# Copy configuration generator script to bin
COPY scripts /opt/zookeeper/bin/
-
-# Copy APIKeys
-RUN git clone -b master --single-branch http://gerrit.onap.org/r/dmaap/messagerouter/messageservice.git /tmp/zookeeper/gerrit
-
-# Create a user for the zookeeper process and configure file system ownership
-# for necessary directories and symlink the distribution as a user executable
-RUN set -x \
- && mkdir -p $ZK_DATA_DIR $ZK_LOG_DIR /usr/share/zookeeper /tmp/zookeeper /usr/etc/ \
- && ln -s /opt/zookeeper/conf/ /usr/etc/zookeeper \
- && ln -s /opt/zookeeper/bin/* /usr/bin \
- && ln -s /opt/zookeeper/$ZK_DIST.jar /usr/share/zookeeper/ \
-&& ln -s /opt/zookeeper/lib/* /usr/share/zookeeper
-
RUN chmod -R 777 /opt/zookeeper/bin
-ENTRYPOINT /opt/zookeeper/bin/start-zookeeper.sh
-EXPOSE 2181 2888 3888
-RUN useradd $ZK_USER \
- && [ `id -u $ZK_USER` -eq 1000 ] \
- && [ `id -g $ZK_USER` -eq 1000 ] \
- && chown -R $ZK_USER:$ZK_USER /opt/$ZK_DIST/ /opt/zookeeper/ /var/lib/ /var/log/ /tmp/zookeeper/
+# delete zookeeper user from upsteram image and create custom user instead
+RUN deluser zookeeper > /dev/null 2>&1 \
+ && { addgroup -S -g 1000 $ZK_USER > /dev/null 2>&1 && adduser -S -D -G $ZK_USER -u 1000 $ZK_USER > /dev/null 2>&1; } \
+ || { groupadd -r -g 1000 $ZK_USER && useradd -r -M -g 1000 -u 1000 $ZK_USER; } \
+ && chown -R $ZK_USER:$ZK_USER \
+ /opt/zookeeper \
+ /tmp/zookeeper \
+ /var/lib/zookeeper \
+ /var/log/zookeeper \
+ $ZK_CONF_DIR \
+ $ZK_DATA_DIR \
+ $ZK_LOG_DIR
+EXPOSE 2181 2888 3888
USER $ZK_USER
-
-
+ENTRYPOINT ["/opt/zookeeper/bin/start-zookeeper.sh"] \ No newline at end of file