small, multi-platform (amd64, arm64) images
[dmaap/kafka11aaf.git] / src / main / docker / Dockerfile
1 FROM openjdk:8-jre-alpine3.9
2
3 ARG kafka_version=1.1.1
4 ARG scala_version=2.12
5
6
7 RUN apk add --update unzip wget curl jq coreutils bash
8
9 ENV KAFKA_VERSION=$kafka_version SCALA_VERSION=$scala_version
10
11 COPY download-kafka.sh \
12      kafka_server_jaas.conf \
13      org.onap.dmaap.mr.trust.jks \
14      org.onap.dmaap.mr.p12 \
15      org.onap.dmaap.mr.keyfile \
16      cadi.properties \
17      kafka11aaf-jar-with-dependencies.jar \
18      dmaapMMAgent.jar \
19      kafka-run-class.sh \
20      /tmp/
21
22 COPY mmagent.config \
23      consumer.properties \
24      producer.properties \
25      /opt/etc/
26
27 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
28
29 VOLUME ["/kafka"]
30
31 ENV KAFKA_HOME /opt/kafka
32 ENV PATH ${PATH}:${KAFKA_HOME}/bin
33
34 COPY start-kafka.sh \
35      broker-list.sh \
36      create-topics.sh \
37      start-kafkaOrMirrorMaker.sh \
38      start-mirrormaker.sh \
39      /usr/bin/
40
41 RUN mkdir /opt/logs && \
42     touch /opt/logs/mmagent.log
43
44 # The scripts need to have executable permission
45 RUN chmod a+x /usr/bin/start-kafka.sh && \
46     chmod a+x /usr/bin/broker-list.sh && \
47     chmod a+x /usr/bin/start-kafkaOrMirrorMaker.sh && \
48     chmod a+x /usr/bin/start-mirrormaker.sh && \
49     chmod a+x /usr/bin/create-topics.sh
50 # Use "exec" form so that it runs as PID 1 (useful for graceful shutdown)
51 CMD ["start-kafkaOrMirrorMaker.sh"]
52
53 RUN addgroup -S -g 1000  mrkafka  \
54     && adduser -S  -u 1000 mrkafka  mrkafka \
55     && chown -R mrkafka:mrkafka  /opt/kafka/ /opt/logs/ /opt/etc/ /kafka/  /usr/bin/ /tmp/
56
57 USER mrkafka