-#########
-# ============LICENSE_START====================================================
-# org.onap.dmaap
-# ===========================================================================
-# Copyright © 2017 AT&T Intellectual Property. All rights reserved.
-# Modifications Copyright (C) 2018 Nokia. All rights reserved.
-# ===========================================================================
-# Licensed 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.
-# ============LICENSE_END====================================================
-#
-FROM openjdk:8-alpine
+FROM openjdk:8-jre-alpine3.9
-MAINTAINER DMAAP Team
-
-ARG kafka_version=0.11.0.1
+ARG kafka_version=1.1.1
ARG scala_version=2.12
+
+RUN apk add --update unzip wget curl jq coreutils bash
+
+ENV KAFKA_VERSION=$kafka_version SCALA_VERSION=$scala_version
+
+COPY download-kafka.sh \
+ kafka_server_jaas.conf \
+ org.onap.dmaap.mr.trust.jks \
+ org.onap.dmaap.mr.p12 \
+ org.onap.dmaap.mr.keyfile \
+ cadi.properties \
+ kafka11aaf-jar-with-dependencies.jar \
+ dmaapMMAgent.jar \
+ kafka-run-class.sh \
+ /tmp/
+
+COPY mmagent.config \
+ consumer.properties \
+ producer.properties \
+ /opt/etc/
+
+RUN chmod a+x /tmp/download-kafka.sh && sync && /tmp/download-kafka.sh && tar xfz /tmp/kafka_${SCALA_VERSION}-${KAFKA_VERSION}.tgz -C /opt && rm /tmp/kafka_${SCALA_VERSION}-${KAFKA_VERSION}.tgz && ln -s /opt/kafka_${SCALA_VERSION}-${KAFKA_VERSION} /opt/kafka
+
VOLUME ["/kafka"]
-ENV KAFKA_VERSION $kafka_version
-ENV SCALA_VERSION $scala_version
ENV KAFKA_HOME /opt/kafka
ENV PATH ${PATH}:${KAFKA_HOME}/bin
-COPY broker-list.sh \
- create-topics.sh \
- start-kafka.sh \
- start-kafkaOrMirrorMaker.sh \
- start-mirrormaker.sh \
- /usr/bin/
+COPY start-kafka.sh \
+ broker-list.sh \
+ create-topics.sh \
+ start-kafkaOrMirrorMaker.sh \
+ start-mirrormaker.sh \
+ /usr/bin/
-COPY mmagent.config \
- consumer.properties \
- producer.properties \
- /opt/etc/
+RUN mkdir /opt/logs && \
+ touch /opt/logs/mmagent.log
-COPY cadi.properties \
- download-kafka.sh \
- kafka_server_jaas.conf \
- kafka-run-class.sh \
- keyfilenew \
- org.onap.dmaap.mr.p12 \
- truststoreONAPall.jks \
- kafka11aaf-jar-with-dependencies.jar \
- dmaapMMAgent.jar \
- /tmp/
-
-RUN apk add --update bash unzip wget curl docker jq coreutils && \
- chmod a+x /usr/bin/start-kafka.sh && \
+# The scripts need to have executable permission
+RUN chmod a+x /usr/bin/start-kafka.sh && \
chmod a+x /usr/bin/broker-list.sh && \
chmod a+x /usr/bin/start-kafkaOrMirrorMaker.sh && \
chmod a+x /usr/bin/start-mirrormaker.sh && \
- chmod a+x /usr/bin/create-topics.sh && \
- chmod a+x /tmp/download-kafka.sh && \
- sync && \
- /tmp/download-kafka.sh && \
- tar xfz /tmp/kafka_${SCALA_VERSION}-${KAFKA_VERSION}.tgz -C /opt && \
- rm /tmp/kafka_${SCALA_VERSION}-${KAFKA_VERSION}.tgz && \
- ln -s /opt/kafka_${SCALA_VERSION}-${KAFKA_VERSION} /opt/kafka
-
+ chmod a+x /usr/bin/create-topics.sh
+# Use "exec" form so that it runs as PID 1 (useful for graceful shutdown)
+CMD ["start-kafkaOrMirrorMaker.sh"]
+
+RUN addgroup -S -g 1000 mrkafka \
+ && adduser -S -u 1000 mrkafka mrkafka \
+ && chown -R mrkafka:mrkafka /opt/kafka/ /opt/logs/ /opt/etc/ /kafka/ /usr/bin/ /tmp/
-WORKDIR /usr/bin
-CMD ["start-kafkaOrMirrorMaker.sh"]
\ No newline at end of file
+USER mrkafka