Skip to content
This repository has been archived by the owner on Apr 23, 2019. It is now read-only.

Use OpenJDK and Alpine. Make http context easily configurable. #15

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
55 changes: 24 additions & 31 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,41 +1,34 @@
FROM centos:7
FROM openjdk:8-jdk-alpine

MAINTAINER Clement Laforet <[email protected]>
# with help from David Smiley

RUN yum update -y && \
yum install -y git wget unzip which && \
yum clean all
ENV ZK_HOSTS=localhost:2181 \
KM_VERSION=1.3.1.8 \
KM_CONFIGFILE="conf/application.conf"

ENV JAVA_MAJOR=8 \
JAVA_UPDATE=101 \
JAVA_BUILD=13
RUN apk update && \
apk add bash ca-certificates wget && \
update-ca-certificates && \
mkdir -p /tmp && \
cd /tmp && \
wget https://github.com/yahoo/kafka-manager/archive/${KM_VERSION}.tar.gz && \
tar -xf ${KM_VERSION}.tar.gz && \
cd /tmp/kafka-manager-${KM_VERSION} && \
./sbt dist && \
mkdir -p /opt && \
unzip -d /opt/ ./target/universal/kafka-manager-${KM_VERSION}.zip && \
mv /opt/kafka-manager-${KM_VERSION} /opt/kafka-manager && \
rm -fr /tmp/* /root/.sbt /root/.ivy2

RUN wget -nv --no-cookies --no-check-certificate \
--header "Cookie: oraclelicense=accept-securebackup-cookie" \
"http://download.oracle.com/otn-pub/java/jdk/${JAVA_MAJOR}u${JAVA_UPDATE}-b${JAVA_BUILD}/jdk-${JAVA_MAJOR}u${JAVA_UPDATE}-linux-x64.rpm" -O /tmp/jdk-${JAVA_MAJOR}u${JAVA_UPDATE}-linux-x64.rpm && \
yum localinstall -y /tmp/jdk-${JAVA_MAJOR}u${JAVA_UPDATE}-linux-x64.rpm && \
rm -f /tmp/jdk-${JAVA_MAJOR}u${JAVA_UPDATE}-linux-x64.rpm
COPY docker-kafka-manager.sh /opt/kafka-manager/bin/docker-kafka-manager.sh

ENV JAVA_HOME=/usr/java/jdk1.8.0_${JAVA_UPDATE} \
ZK_HOSTS=localhost:2181 \
KM_VERSION=1.3.1.6 \
KM_REVISION=6cf43e383377a6b37df4faa04d9aff515a265b30 \
KM_CONFIGFILE="conf/application.conf"
#VOLUME ["/opt/kafka-manager/conf"]

ADD start-kafka-manager.sh /kafka-manager-${KM_VERSION}/start-kafka-manager.sh
ENV PATH /opt/kafka-manager/bin:$PATH

RUN mkdir -p /tmp && \
cd /tmp && \
git clone https://github.com/yahoo/kafka-manager && \
cd /tmp/kafka-manager && \
git checkout ${KM_REVISION} && \
echo 'scalacOptions ++= Seq("-Xmax-classfile-name", "200")' >> build.sbt && \
./sbt clean dist && \
unzip -d / ./target/universal/kafka-manager-${KM_VERSION}.zip && \
rm -fr /tmp/* /root/.sbt /root/.ivy2 && \
chmod +x /kafka-manager-${KM_VERSION}/start-kafka-manager.sh
EXPOSE 9000

WORKDIR /kafka-manager-${KM_VERSION}
WORKDIR /opt/kafka-manager

EXPOSE 9000
ENTRYPOINT ["./start-kafka-manager.sh"]
ENTRYPOINT ["./bin/docker-kafka-manager.sh"]
17 changes: 17 additions & 0 deletions docker-kafka-manager.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
#!/bin/sh

cp "$KM_CONFIGFILE" conf/application.modified.conf
# local var; doesn't change global env
KM_CONFIGFILE=conf/application.modified.conf

if [[ "$KM_USERNAME" != "" && "$KM_PASSWORD" != "" ]]; then
sed -i.bak '/^basicAuthentication/d' "$KM_CONFIGFILE"
echo 'basicAuthentication.enabled=true' >> "$KM_CONFIGFILE"
echo "basicAuthentication.username=${KM_USERNAME}" >> "$KM_CONFIGFILE"
echo "basicAuthentication.password=${KM_PASSWORD}" >> "$KM_CONFIGFILE"
echo 'basicAuthentication.realm="Kafka-Manager"' >> "$KM_CONFIGFILE"
fi
# this will allow you to customize
echo 'play.http.context = ${?KM_HTTP_CONTEXT}' >> "$KM_CONFIGFILE"

exec ./bin/kafka-manager "-Dconfig.file=${KM_CONFIGFILE}" "${KM_ARGS}" "${@}"
11 changes: 0 additions & 11 deletions start-kafka-manager.sh

This file was deleted.