Eigenes Kafka-Image von `cp-kafka` mit cruis-control-JAR abgeleitet
[demos/kafka/training] / cruise-control / Dockerfile
1 ARG VERSION=7.5.1
2
3 FROM eclipse-temurin:17-jdk-focal
4
5 RUN apt update
6 RUN apt install -y git
7 WORKDIR /tmp
8 RUN git clone -b migrate_to_kafka_2_5 https://github.com/linkedin/cruise-control.git
9 WORKDIR cruise-control
10 RUN ./gradlew jar
11
12 FROM confluentinc/cp-kafka-connect:${VERSION}
13 USER root
14 COPY --from=0 /tmp/cruise-control/config /opt/cruise-control/config/
15 COPY --from=0 /tmp/cruise-control/cruise-control/build /opt/cruise-control/cruise-control/build/
16 COPY --from=0 /tmp/cruise-control/kafka-cruise-control-start.sh /opt/cruise-control/
17 WORKDIR /opt/cruise-control
18 RUN wget -O - https://github.com/linkedin/cruise-control-ui/releases/download/v0.4.0/cruise-control-ui-0.4.0.tar.gz | tar -xzv
19 ENV BOOTSTRAP_SERVERS=localhost:9092
20 ENV ZOOKEEPER_CONNECT=localhost:2181
21 RUN echo -e '#!/bin/bash\n sed -ie "s+^bootstrap\.servers=.*$+bootstrap.servers=${BOOTSTRAP_SERVERS}+;s+^zookeeper\.connect=.*$+zookeeper.connect=${ZOOKEEPER_CONNECT}+" config/cruisecontrol.properties\nexec ./kafka-cruise-control-start.sh "$@"' > run.sh; chmod a+x run.sh
22 ENTRYPOINT [ "/opt/cruise-control/run.sh" ]
23 CMD [ "config/cruisecontrol.properties" ]