Skip to content

Commit a31bf42

Browse files
Use java21 for pulsar 4 0 + (#809)
* Use java21 for Pulsar 4.0+ in java runner image * Fix kinesis * Update * Remove unused code * Update * Address comments * Update images/pulsar-functions-java-runner/pulsarctl.Dockerfile Co-authored-by: Lari Hotari <lhotari@users.noreply.github.com> --------- Co-authored-by: Lari Hotari <lhotari@users.noreply.github.com>
1 parent b523d59 commit a31bf42

File tree

4 files changed

+59
-10
lines changed

4 files changed

+59
-10
lines changed

images/pulsar-functions-base-runner/Dockerfile

Lines changed: 29 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
ARG PULSAR_IMAGE
22
ARG PULSAR_IMAGE_TAG
33
FROM ${PULSAR_IMAGE}:${PULSAR_IMAGE_TAG} as pulsar
4-
FROM alpine:3.20 as functions-runner
4+
FROM apachepulsar/pulsar-io-kinesis-sink-kinesis_producer:0.15.12 as pulsar-io-kinesis-sink-kinesis_producer
5+
FROM alpine:3.21 as functions-runner
56

67
ENV GID=10001
78
ENV UID=10000
@@ -41,9 +42,12 @@ RUN echo "VERSION_TAG=${VERSION_TAG}" && \
4142
elif [ $VERSION_MAJOR -eq 2 ] && [ $VERSION_MINOR -eq 11 ]; then \
4243
echo "Pulsar version is 2.11, use java 17" && \
4344
export JRE_PACKAGE_NAME='openjdk17 gcompat'; \
44-
else \
45-
echo "Pulsar version is not in the list, use java 17 instead" && \
45+
elif [ $VERSION_MAJOR -eq 3 ]; then \
46+
echo "Pulsar version is 3.x, use java 17 instead" && \
4647
export JRE_PACKAGE_NAME='openjdk17 gcompat'; \
48+
else \
49+
echo "Pulsar version is not in the list, use java 21 instead" && \
50+
export JRE_PACKAGE_NAME='openjdk21 gcompat'; \
4751
fi && \
4852
apk update && apk add --no-cache $JRE_PACKAGE_NAME bash
4953

@@ -64,4 +68,26 @@ RUN rm -rf /pulsar/bin/pulsar-detector || true
6468
ENV PULSAR_ROOT_LOGGER=INFO,CONSOLE
6569
ENV java.io.tmpdir=/pulsar/tmp/
6670

71+
# Copy the kinesis_producer native executable compiled for Alpine musl to the runner image
72+
# This is required to support the Pulsar IO Kinesis sink connector
73+
COPY --from=pulsar-io-kinesis-sink-kinesis_producer --chown=$UID:$GID /opt/amazon-kinesis-producer/bin/kinesis_producer /opt/amazon-kinesis-producer/bin/.os_info /opt/amazon-kinesis-producer/bin/.build_time /opt/amazon-kinesis-producer/bin/.revision /opt/amazon-kinesis-producer/bin/.system_info /opt/amazon-kinesis-producer/bin/.version /opt/amazon-kinesis-producer/bin/
74+
# Set the environment variable to point to the kinesis_producer native executable
75+
ENV PULSAR_IO_KINESIS_KPL_PATH=/opt/amazon-kinesis-producer/bin/kinesis_producer
76+
# Install the required dependencies for the kinesis_producer native executable
77+
USER 0
78+
RUN apk update && apk add --no-cache \
79+
brotli-libs \
80+
c-ares \
81+
libcrypto3 \
82+
libcurl \
83+
libgcc \
84+
libidn2 \
85+
libpsl \
86+
libssl3 \
87+
libunistring \
88+
nghttp2-libs \
89+
zlib \
90+
zstd-libs \
91+
libuuid
92+
6793
WORKDIR /pulsar

images/pulsar-functions-base-runner/pulsarctl.Dockerfile

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,4 @@
1-
ARG PULSAR_IMAGE
2-
ARG PULSAR_IMAGE_TAG
3-
FROM ${PULSAR_IMAGE}:${PULSAR_IMAGE_TAG} as pulsar
4-
FROM alpine:3.20 as functions-runner
1+
FROM alpine:3.21 as functions-runner
52

63
ENV GID=10001
74
ENV UID=10000

images/pulsar-functions-java-runner/pulsarctl.Dockerfile

Lines changed: 28 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
ARG PULSAR_IMAGE
22
ARG PULSAR_IMAGE_TAG
33
FROM ${PULSAR_IMAGE}:${PULSAR_IMAGE_TAG} as pulsar
4+
FROM apachepulsar/pulsar-io-kinesis-sink-kinesis_producer:0.15.12 as pulsar-io-kinesis-sink-kinesis_producer
45
FROM pulsar-functions-pulsarctl-runner-base:latest
56

67
ARG PULSAR_IMAGE_TAG
@@ -25,9 +26,12 @@ RUN echo "VERSION_TAG=${VERSION_TAG}" && \
2526
elif [ $VERSION_MAJOR -eq 2 ] && [ $VERSION_MINOR -eq 11 ]; then \
2627
echo "Pulsar version is 2.11, use java 17" && \
2728
export JRE_PACKAGE_NAME='openjdk17 gcompat'; \
28-
else \
29-
echo "Pulsar version is not in the list, use java 17 instead" && \
29+
elif [ $VERSION_MAJOR -eq 3 ]; then \
30+
echo "Pulsar version is 3.x, use java 17" && \
3031
export JRE_PACKAGE_NAME='openjdk17 gcompat'; \
32+
else \
33+
echo "Pulsar version is not in the list, use java 21 instead" && \
34+
export JRE_PACKAGE_NAME='openjdk21 gcompat'; \
3135
fi && \
3236
apk update && apk add --no-cache $JRE_PACKAGE_NAME
3337

@@ -53,4 +57,26 @@ ENV java.io.tmpdir=/pulsar/tmp/
5357

5458
WORKDIR /pulsar
5559

60+
# Copy the kinesis_producer native executable compiled for Alpine musl to the image
61+
# This is required to support the Pulsar IO Kinesis sink connector
62+
COPY --from=pulsar-io-kinesis-sink-kinesis_producer --chown=$UID:$GID /opt/amazon-kinesis-producer/bin/kinesis_producer /opt/amazon-kinesis-producer/bin/.os_info /opt/amazon-kinesis-producer/bin/.build_time /opt/amazon-kinesis-producer/bin/.revision /opt/amazon-kinesis-producer/bin/.system_info /opt/amazon-kinesis-producer/bin/.version /opt/amazon-kinesis-producer/bin/
63+
# Set the environment variable to point to the kinesis_producer native executable
64+
ENV PULSAR_IO_KINESIS_KPL_PATH=/opt/amazon-kinesis-producer/bin/kinesis_producer
65+
# Install the required dependencies for the kinesis_producer native executable
66+
USER 0
67+
RUN apk update && apk add --no-cache \
68+
brotli-libs \
69+
c-ares \
70+
libcrypto3 \
71+
libcurl \
72+
libgcc \
73+
libidn2 \
74+
libpsl \
75+
libssl3 \
76+
libunistring \
77+
nghttp2-libs \
78+
zlib \
79+
zstd-libs \
80+
libuuid
81+
5682
USER $USER

operator.Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FROM alpine:3.20
1+
FROM alpine:3.21
22

33
ENV GID=10001
44
ENV UID=10000

0 commit comments

Comments
 (0)