Skip to content
Closed
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
2 changes: 1 addition & 1 deletion cp/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM solsson/kafka-jre@sha256:7765513cf5fa455a672a06f584058c1c81cc0b3b56cc56b0cfdf1a917a183f26
FROM solsson/kafka-jre@sha256:61196845eafb0970cf94598fd723a66407be31cd8bab83e3a29b4e602683280d

ENV CP_VERSION=3.3.0

Expand Down
63 changes: 63 additions & 0 deletions ksql/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
FROM solsson/kafka-jre@sha256:61196845eafb0970cf94598fd723a66407be31cd8bab83e3a29b4e602683280d

ENV ksql_version=dc1ad22e95793252c47f2a66656417e64e0fec21 ksql_repo=https://github.com/confluentinc/ksql

ENV CP_VERSION=3.3.0
ENV KSQL_BUILD=0.1-SNAPSHOT

WORKDIR /usr/local

RUN set -ex; \
WORKDIR=$PWD; \
mkdir -p $WORKDIR/share/java; \
\
export DEBIAN_FRONTEND=noninteractive; \
runDeps=''; \
buildDeps='curl ca-certificates'; \
apt-get update && apt-get install -y $runDeps $buildDeps --no-install-recommends; \
\
MAVEN_VERSION=3.5.0 PATH=$PATH:/opt/maven/bin; \
mkdir -p /opt/maven; \
curl -SLs https://archive.apache.org/dist/maven/maven-3/$MAVEN_VERSION/binaries/apache-maven-$MAVEN_VERSION-bin.tar.gz | tar -xzf - --strip-components=1 -C /opt/maven; \
mvn --version; \
\
mkdir -p /opt/src/common; cd /opt/src/common; \
curl -SLs https://github.com/confluentinc/common/archive/v$CP_VERSION.tar.gz | tar -xzf - --strip-components=1 -C ./; \
mvn install; \
\
mkdir -p /opt/src/rest-utils; cd /opt/src/rest-utils; \
curl -SLs https://github.com/confluentinc/rest-utils/archive/v$CP_VERSION.tar.gz | tar -xzf - --strip-components=1 -C ./; \
mvn install; \
\
mkdir -p /opt/src/ksql; cd /opt/src/ksql; \
curl -SLs ${ksql_repo}/archive/${ksql_version}.tar.gz | tar -xzf - --strip-components=1 -C ./; \
mvn package; \
\
cd $WORKDIR; \
\
mv /opt/src/common/package/target/common-package-$CP_VERSION-package/share/java/confluent-common ./share/java/; \
mv /opt/src/rest-utils/package/target/rest-utils-package-$CP_VERSION-package/share/java/rest-utils ./share/java/; \
\
mv /opt/src/ksql/ksql-rest-app/target/ksql-rest-app-${KSQL_BUILD}-package/etc/ksql-rest-app /etc/; \
mv /opt/src/ksql/ksql-rest-app/target/ksql-rest-app-${KSQL_BUILD}-package/bin/* ./bin/; \
mv /opt/src/ksql/ksql-rest-app/target/ksql-rest-app-${KSQL_BUILD}-package/share/java/ksql-rest-app ./share/java/; \
\
# fixes NoClassDefFoundError: com/google/common/collect/ImmutableList
mv -v /opt/src/ksql/ksql-rest-app/target/ksql-rest-app-${KSQL_BUILD}-development/share/java/ksql-rest-app/*guava* ./share/java/ksql-rest-app/; \
\
# let the same image be used to connect, but don't put it in rest-app's classpath
mv /opt/src/ksql/ksql-cli/target/ksql-cli-${KSQL_BUILD}-package /opt/ksql-cli; \
for J in /usr/local/share/java/*; do ln -sv $J /opt/ksql-cli/share/java/; done; \
# maybe we could run in place, but let's keep the rest-app install clean so we don't get conflicting jars there
rm /opt/ksql-cli/share/java/ksql-cli/slf4j-log4j12-*; \
sed -i 's|base_dir=.*|base_dir=/opt/ksql-cli|' /usr/local/bin/ksql-cli; \
ln -sv /opt/ksql-cli/etc/ksql-cli /opt/ksql-cli/config; \
\
rm -Rf /opt/src /opt/maven /root/.m2; \
\
apt-get purge -y --auto-remove $buildDeps; \
rm -rf /var/lib/apt/lists/*; \
rm -rf /var/log/dpkg.log /var/log/alternatives.log /var/log/apt

ENTRYPOINT ["ksql-server-start"]
CMD ["/etc/ksql-rest-app/ksqlserver.properties"]