11ARG PULSAR_IMAGE
22ARG PULSAR_IMAGE_TAG
33FROM ${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
67ENV GID=10001
78ENV 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
6468ENV PULSAR_ROOT_LOGGER=INFO,CONSOLE
6569ENV 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+
6793WORKDIR /pulsar
0 commit comments