From 0ba00acf347a3a4634d603e277e85f7f9b3eb350 Mon Sep 17 00:00:00 2001 From: Bitnami Bot Date: Tue, 14 Aug 2018 14:26:37 +0000 Subject: [PATCH] 2.0.0-debian-9-r0 release Update kafka to 2.0.0 --- bitnami/kafka/2/debian-9/Dockerfile | 53 +++++++++++++++++++ bitnami/kafka/2/debian-9/docker-compose.yml | 26 +++++++++ .../kafka/2/debian-9/rootfs/app-entrypoint.sh | 14 +++++ bitnami/kafka/2/debian-9/rootfs/init.sh | 23 ++++++++ .../kafka/2/debian-9/rootfs/kafka-inputs.json | 34 ++++++++++++ bitnami/kafka/2/debian-9/rootfs/run.sh | 30 +++++++++++ bitnami/kafka/README.md | 4 +- bitnami/kafka/circle.yml | 4 +- 8 files changed, 185 insertions(+), 3 deletions(-) create mode 100644 bitnami/kafka/2/debian-9/Dockerfile create mode 100644 bitnami/kafka/2/debian-9/docker-compose.yml create mode 100755 bitnami/kafka/2/debian-9/rootfs/app-entrypoint.sh create mode 100644 bitnami/kafka/2/debian-9/rootfs/init.sh create mode 100644 bitnami/kafka/2/debian-9/rootfs/kafka-inputs.json create mode 100755 bitnami/kafka/2/debian-9/rootfs/run.sh diff --git a/bitnami/kafka/2/debian-9/Dockerfile b/bitnami/kafka/2/debian-9/Dockerfile new file mode 100644 index 000000000000..142336d544eb --- /dev/null +++ b/bitnami/kafka/2/debian-9/Dockerfile @@ -0,0 +1,53 @@ +FROM bitnami/minideb-extras:stretch-r106 +LABEL maintainer "Bitnami " + +ENV BITNAMI_PKG_CHMOD="-R g+rwX" \ + HOME="/" + +# Install required system packages and dependencies +RUN install_packages libblkid1 libbsd0 libc6 libffi6 libgcc1 libglib2.0-0 libmount1 libpcre3 libselinux1 libstdc++6 libuuid1 libx11-6 libxau6 libxcb1 libxdmcp6 libxext6 zlib1g +RUN bitnami-pkg install java-1.8.181-1 --checksum 66bba4b4a2647f981339d306da796905c222057c4277a5ef045e079981a404f4 +RUN bitnami-pkg unpack kafka-2.0.0-0 --checksum 0f0e51cca3ca7b4fa864ad3a7ab60655203675fb358d44be65e6422bb487316a + +COPY rootfs / +ENV ALLOW_PLAINTEXT_LISTENER="no" \ + BITNAMI_APP_NAME="kafka" \ + BITNAMI_IMAGE_VERSION="2.0.0-debian-9-r0" \ + KAFKA_ADVERTISED_LISTENERS="PLAINTEXT://:9092" \ + KAFKA_BROKER_ID="-1" \ + KAFKA_BROKER_PASSWORD="bitnami" \ + KAFKA_BROKER_USER="user" \ + KAFKA_CERTIFICATE_PASSWORD="" \ + KAFKA_DELETE_TOPIC_ENABLE="false" \ + KAFKA_HEAP_OPTS="-Xmx1024m -Xms1024m" \ + KAFKA_INTER_BROKER_PASSWORD="bitnami" \ + KAFKA_INTER_BROKER_USER="admin" \ + KAFKA_LISTENERS="PLAINTEXT://:9092" \ + KAFKA_LOGS_DIRS="/opt/bitnami/kafka/data" \ + KAFKA_LOG_FLUSH_INTERVAL_MESSAGES="10000" \ + KAFKA_LOG_FLUSH_INTERVAL_MS="1000" \ + KAFKA_LOG_MESSAGE_FORMAT_VERSION="" \ + KAFKA_LOG_RETENTION_BYTES="1073741824" \ + KAFKA_LOG_RETENTION_CHECK_INTERVALS_MS="300000" \ + KAFKA_LOG_RETENTION_HOURS="168" \ + KAFKA_MAX_MESSAGE_BYTES="1000012" \ + KAFKA_NUM_IO_THREADS="8" \ + KAFKA_NUM_NETWORK_THREADS="3" \ + KAFKA_NUM_PARTITIONS="1" \ + KAFKA_NUM_RECOVERY_THREADS_PER_DATA_DIR="1" \ + KAFKA_PORT_NUMBER="9092" \ + KAFKA_SEGMENT_BYTES="1073741824" \ + KAFKA_SOCKET_RECEIVE_BUFFER_BYTES="102400" \ + KAFKA_SOCKET_REQUEST_MAX_BYTES="104857600" \ + KAFKA_SOCKET_SEND_BUFFER_BYTES="102400" \ + KAFKA_ZOOKEEPER_CONNECT="localhost:2181" \ + KAFKA_ZOOKEEPER_CONNECT_TIMEOUT_MS="6000" \ + KAFKA_ZOOKEEPER_PASSWORD="" \ + KAFKA_ZOOKEEPER_USER="" \ + PATH="/opt/bitnami/java/bin:/opt/bitnami/kafka/bin:$PATH" + +EXPOSE 9092 + +USER 1001 +ENTRYPOINT ["/app-entrypoint.sh"] +CMD ["/run.sh"] diff --git a/bitnami/kafka/2/debian-9/docker-compose.yml b/bitnami/kafka/2/debian-9/docker-compose.yml new file mode 100644 index 000000000000..52e341641b36 --- /dev/null +++ b/bitnami/kafka/2/debian-9/docker-compose.yml @@ -0,0 +1,26 @@ +version: '2' + +services: + zookeeper: + image: 'bitnami/zookeeper:latest' + ports: + - '2181:2181' + volumes: + - 'zookeeper_data:/bitnami' + environment: + - ALLOW_ANONYMOUS_LOGIN=yes + kafka: + image: 'bitnami/kafka:2' + ports: + - '9092:9092' + volumes: + - 'kafka_data:/bitnami' + environment: + - KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181 + - ALLOW_PLAINTEXT_LISTENER=yes + +volumes: + zookeeper_data: + driver: local + kafka_data: + driver: local diff --git a/bitnami/kafka/2/debian-9/rootfs/app-entrypoint.sh b/bitnami/kafka/2/debian-9/rootfs/app-entrypoint.sh new file mode 100755 index 000000000000..6605f4a9719e --- /dev/null +++ b/bitnami/kafka/2/debian-9/rootfs/app-entrypoint.sh @@ -0,0 +1,14 @@ +#!/bin/bash -e + +. /opt/bitnami/base/functions +. /opt/bitnami/base/helpers + +print_welcome_page + +if [[ "$1" == "nami" && "$2" == "start" ]] || [[ "$1" == "/run.sh" ]]; then + . /init.sh + nami_initialize kafka + info "Starting kafka... " +fi + +exec tini -- "$@" diff --git a/bitnami/kafka/2/debian-9/rootfs/init.sh b/bitnami/kafka/2/debian-9/rootfs/init.sh new file mode 100644 index 000000000000..d89dcc306918 --- /dev/null +++ b/bitnami/kafka/2/debian-9/rootfs/init.sh @@ -0,0 +1,23 @@ +## +## @brief Helper function to show an error when KAFKA_LISTENERS does not configure a secure listener +## param $1 Input name +## +plaintext_listener_error() { + error "The $1 environment variable does not set a secure listener. Set the environment variable ALLOW_PLAINTEXT_LISTENER=yes to allow the container to be started with a plaintext listener. This is recommended only for development." + exit 1 +} + +## +## @brief Helper function to show a warning when the ALLOW_PLAINTEXT_LISTENER flag is enabled +## +plaintext_listener_enabled_warn() { + warn "You set the environment variable ALLOW_PLAINTEXT_LISTENER=${ALLOW_PLAINTEXT_LISTENER}. For safety reasons, do not use this flag in a production environment." +} + + +# Validate passwords +if [[ "$ALLOW_PLAINTEXT_LISTENER" =~ ^(yes|Yes|YES)$ ]]; then + plaintext_listener_enabled_warn +elif [[ ! "$KAFKA_LISTENERS" =~ SASL_SSL ]]; then + plaintext_listener_error KAFKA_LISTENERS +fi diff --git a/bitnami/kafka/2/debian-9/rootfs/kafka-inputs.json b/bitnami/kafka/2/debian-9/rootfs/kafka-inputs.json new file mode 100644 index 000000000000..86f1516ee3ec --- /dev/null +++ b/bitnami/kafka/2/debian-9/rootfs/kafka-inputs.json @@ -0,0 +1,34 @@ +{ + "allowPlaintextListener": "{{$global.env.ALLOW_PLAINTEXT_LISTENER}}", + "kafkaAdvertisedListeners": "{{$global.env.KAFKA_ADVERTISED_LISTENERS}}", + "kafkaBrokerId": "{{$global.env.KAFKA_BROKER_ID}}", + "kafkaBrokerPassword": "{{$global.env.KAFKA_BROKER_PASSWORD}}", + "kafkaBrokerUser": "{{$global.env.KAFKA_BROKER_USER}}", + "kafkaCertificatePassword": "{{$global.env.KAFKA_CERTIFICATE_PASSWORD}}", + "kafkaDeleteTopicEnable": "{{$global.env.KAFKA_DELETE_TOPIC_ENABLE}}", + "kafkaHeapOpts": "{{$global.env.KAFKA_HEAP_OPTS}}", + "kafkaInterBrokerPassword": "{{$global.env.KAFKA_INTER_BROKER_PASSWORD}}", + "kafkaInterBrokerUser": "{{$global.env.KAFKA_INTER_BROKER_USER}}", + "kafkaListeners": "{{$global.env.KAFKA_LISTENERS}}", + "kafkaLogFlushIntervalMessages": "{{$global.env.KAFKA_LOG_FLUSH_INTERVAL_MESSAGES}}", + "kafkaLogFlushIntervalMs": "{{$global.env.KAFKA_LOG_FLUSH_INTERVAL_MS}}", + "kafkaLogMessageFormatVersion": "{{$global.env.KAFKA_LOG_MESSAGE_FORMAT_VERSION}}", + "kafkaLogRetentionBytes": "{{$global.env.KAFKA_LOG_RETENTION_BYTES}}", + "kafkaLogRetentionCheckIntervalMs": "{{$global.env.KAFKA_LOG_RETENTION_CHECK_INTERVALS_MS}}", + "kafkaLogRetentionHours": "{{$global.env.KAFKA_LOG_RETENTION_HOURS}}", + "kafkaLogSegmentBytes": "{{$global.env.KAFKA_SEGMENT_BYTES}}", + "kafkaLogsDirs": "{{$global.env.KAFKA_LOGS_DIRS}}", + "kafkaMaxMessageBytes": "{{$global.env.KAFKA_MAX_MESSAGE_BYTES}}", + "kafkaNumIoThreads": "{{$global.env.KAFKA_NUM_IO_THREADS}}", + "kafkaNumNetworkThreads": "{{$global.env.KAFKA_NUM_NETWORK_THREADS}}", + "kafkaNumPartitions": "{{$global.env.KAFKA_NUM_PARTITIONS}}", + "kafkaNumRecoveryThreadsPerDataDir": "{{$global.env.KAFKA_NUM_RECOVERY_THREADS_PER_DATA_DIR}}", + "kafkaPort": "{{$global.env.KAFKA_PORT_NUMBER}}", + "kafkaSocketReceiveBufferBytes": "{{$global.env.KAFKA_SOCKET_RECEIVE_BUFFER_BYTES}}", + "kafkaSocketRequestMaxBytes": "{{$global.env.KAFKA_SOCKET_REQUEST_MAX_BYTES}}", + "kafkaSocketSendBufferBytes": "{{$global.env.KAFKA_SOCKET_SEND_BUFFER_BYTES}}", + "kafkaZookeeperConnect": "{{$global.env.KAFKA_ZOOKEEPER_CONNECT}}", + "kafkaZookeeperConnectionTimeoutMs": "{{$global.env.KAFKA_ZOOKEEPER_CONNECT_TIMEOUT_MS}}", + "kafkaZookeeperPassword": "{{$global.env.KAFKA_ZOOKEEPER_PASSWORD}}", + "kafkaZookeeperUser": "{{$global.env.KAFKA_ZOOKEEPER_USER}}" +} \ No newline at end of file diff --git a/bitnami/kafka/2/debian-9/rootfs/run.sh b/bitnami/kafka/2/debian-9/rootfs/run.sh new file mode 100755 index 000000000000..5f34ce94edce --- /dev/null +++ b/bitnami/kafka/2/debian-9/rootfs/run.sh @@ -0,0 +1,30 @@ +#!/bin/bash +. /opt/bitnami/base/functions +. /opt/bitnami/base/helpers + + +USER=kafka +KAFKA_HOME="/opt/bitnami/kafka" +START_COMMAND="${KAFKA_HOME}/bin/kafka-server-start.sh -daemon ${KAFKA_HOME}/config/server.properties && ps ax | grep -i 'java.*kafka' | grep -v grep | awk '{print \$1}' > ${KAFKA_HOME}/tmp/kafka.pid && tail -f ${KAFKA_HOME}/logs/server.log" + +if [[ -z "$KAFKA_BROKER_ID" ]]; then + if [[ -n "$BROKER_ID_COMMAND" ]]; then + export KAFKA_BROKER_ID=$(eval $BROKER_ID_COMMAND) + else + # By default auto allocate broker ID + export KAFKA_BROKER_ID=-1 + fi +fi + +if [[ "$KAFKA_LISTENERS" =~ SASL ]]; then + export KAFKA_OPTS="-Djava.security.auth.login.config=${KAFKA_HOME}/conf/kafka_jaas.conf" +fi + +# If container is started as `root` user +if [ $EUID -eq 0 ]; then + gosu ${USER} touch ${KAFKA_HOME}/logs/server.log + exec gosu ${USER} bash -c "${START_COMMAND}" +else + touch ${KAFKA_HOME}/logs/server.log + exec bash -c "${START_COMMAND}" +fi diff --git a/bitnami/kafka/README.md b/bitnami/kafka/README.md index c1cc7a3758c3..8880e0df5ac7 100644 --- a/bitnami/kafka/README.md +++ b/bitnami/kafka/README.md @@ -45,8 +45,10 @@ services: Learn more about the Bitnami tagging policy and the difference between rolling tags and immutable tags [in our documentation page](https://docs.bitnami.com/containers/how-to/understand-rolling-tags-containers/). +* [`2-debian-9`, `2.0.0-debian-9-r0`, `2`, `2.0.0`, `2.0.0-r0`, `latest` (2/Dockerfile)](https://github.com/bitnami/bitnami-docker-kafka/blob/2.0.0-debian-9-r0/2/Dockerfile) * [`1-ol-7`, `1.1.1-ol-7-r16` (1/ol-7/Dockerfile)](https://github.com/bitnami/bitnami-docker-kafka/blob/1.1.1-ol-7-r16/1/ol-7/Dockerfile) -* [`1-debian-9`, `1.1.1-debian-9-r10`, `1`, `1.1.1`, `1.1.1-r10`, `latest` (1/Dockerfile)](https://github.com/bitnami/bitnami-docker-kafka/blob/1.1.1-debian-9-r10/1/Dockerfile) +* [`1-debian-9`, `1.1.1-debian-9-r10`, `1`, `1.1.1`, `1.1.1-r10` (1/Dockerfile)](https://github.com/bitnami/bitnami-docker-kafka/blob/1.1.1-debian-9-r10/1/Dockerfile) +* [`2-ol-7`, `0.0.0-ol-7-r0` (2/ol-7/Dockerfile)](https://github.com/bitnami/bitnami-docker-kafka/blob/0.0.0-ol-7-r0/2/ol-7/Dockerfile) Subscribe to project updates by watching the [bitnami/kafka GitHub repo](https://github.com/bitnami/bitnami-docker-kafka). diff --git a/bitnami/kafka/circle.yml b/bitnami/kafka/circle.yml index d53131645623..6f111b6ed0a2 100644 --- a/bitnami/kafka/circle.yml +++ b/bitnami/kafka/circle.yml @@ -5,8 +5,8 @@ jobs: docker: - image: docker:17.06.0-ce-git environment: - RELEASE_SERIES_LIST: "1" - LATEST_STABLE: "1" + RELEASE_SERIES_LIST: "1,2" + LATEST_STABLE: "2" DISTRIBUTIONS_LIST: "debian-9,ol-7" IMAGE_NAME: kafka CHART_NAME: kafka