Sign inSign up

freemanliu/zookeeper

By freemanliu

•Updated about 6 years ago

Image
0

396

freemanliu/zookeeper repository overview

⁠Usage

docker run  -p 2181:2181 -p 8080:8080 -m 1Gi freemanliu/zookeeper:3.5.7

⁠Usage NettyServerCnxnFactory

docker run  -p 2181:2181 -p 8080:8080 \
 -e JVMFLAGS="-Dzookeeper.serverCnxnFactory=org.apache.zookeeper.server.NettyServerCnxnFactory " \
 -m 1Gi freemanliu/zookeeper:3.6.1

⁠Export Prometheus metrics

http://localhost:7070/metrics⁠

docker run  -p 2181:2181 -p 8080:8080 -p 7070:7070 \
 -e JVMFLAGS="-Dzookeeper.serverCnxnFactory=org.apache.zookeeper.server.NettyServerCnxnFactory" \
-e ZOO_CFG_EXTRA="metricsProvider.className=org.apache.zookeeper.metrics.prometheus.PrometheusMetricsProvider metricsProvider.httpPort=7070" \
 -m 1Gi freemanliu/zookeeper:3.6.1

⁠Usage ZGC

docker run -it --rm \
-e JVMFLAGS="-Dzookeeper.serverCnxnFactory=org.apache.zookeeper.server.NettyServerCnxnFactory -XX:+UnlockExperimentalVMOptions -XX:+UseZGC" \
-e ZOO_CFG_EXTRA="metricsProvider.className=org.apache.zookeeper.metrics.prometheus.PrometheusMetricsProvider metricsProvider.httpPort=7070" \
-p 7070:7070 -p8080:8080 -p 2181:2181 freemanliu/zookeeper:3.6.1

#Cluster

ZOO_MY_ID: myid
ZOO_SERVERS: server.1=zoo1:2888:3888;2181 server.2=0.0.0.0:2888:3888;2181 server.3=zoo3:2888:3888;2181

⁠Dockerfile

FROM freemanliu/openjre:11.0.5
ADD apache-zookeeper-3.5.7-bin.tar.gz /opt
ADD docker-entrypoint.sh /
RUN chmod +x /docker-entrypoint.sh
ENV ZOO_CONF_DIR=/zk/conf \
    ZOO_DATA_DIR=/zk/zkdata \
    ZOO_DATA_LOG_DIR=/zk/zkdatalog \
    ZOO_LOG_DIR=/zk/logs \
    ZOO_TICK_TIME=2000 \
    ZOO_INIT_LIMIT=5 \
    ZOO_SYNC_LIMIT=2 \
    ZOO_AUTOPURGE_PURGEINTERVAL=1 \
    ZOO_AUTOPURGE_SNAPRETAINCOUNT=3 \
    ZOO_MAX_CLIENT_CNXNS=300 \
    ZOO_STANDALONE_ENABLED=true \
    ZOO_ADMINSERVER_ENABLED=true \
    DISTRO_NAME=/opt/apache-zookeeper-3.5.7-bin

WORKDIR $DISTRO_NAME
VOLUME ["$ZOO_DATA_DIR", "$ZOO_DATA_LOG_DIR", "$ZOO_LOG_DIR","$ZOO_CONF_DIR"]

EXPOSE 2181 2888 3888 8080

ENV PATH=$PATH:/$DISTRO_NAME/bin \
    ZOOCFGDIR=$ZOO_CONF_DIR
CMD ["/docker-entrypoint.sh","zkServer.sh", "start-foreground"]


⁠docker-entrypoint.sh

#!/bin/bash

set -e
cp -r $DISTRO_NAME/conf/* $ZOO_CONF_DIR
# Generate the config only if it doesn't exist
if [[ ! -f "$ZOO_CONF_DIR/zoo.cfg" ]]; then
    CONFIG="$ZOO_CONF_DIR/zoo.cfg"

    echo "dataDir=$ZOO_DATA_DIR" >> "$CONFIG"
    echo "dataLogDir=$ZOO_DATA_LOG_DIR" >> "$CONFIG"

    echo "tickTime=$ZOO_TICK_TIME" >> "$CONFIG"
    echo "initLimit=$ZOO_INIT_LIMIT" >> "$CONFIG"
    echo "syncLimit=$ZOO_SYNC_LIMIT" >> "$CONFIG"

    echo "autopurge.snapRetainCount=$ZOO_AUTOPURGE_SNAPRETAINCOUNT" >> "$CONFIG"
    echo "autopurge.purgeInterval=$ZOO_AUTOPURGE_PURGEINTERVAL" >> "$CONFIG"
    echo "maxClientCnxns=$ZOO_MAX_CLIENT_CNXNS" >> "$CONFIG"
    echo "standaloneEnabled=$ZOO_STANDALONE_ENABLED" >> "$CONFIG"
    echo "admin.enableServer=$ZOO_ADMINSERVER_ENABLED" >> "$CONFIG"

    if [[ -z $ZOO_SERVERS ]]; then
      ZOO_SERVERS="server.1=localhost:2888:3888;2181"
    fi

    for server in $ZOO_SERVERS; do
        echo "$server" >> "$CONFIG"
    done

    if [[ -n $ZOO_4LW_COMMANDS_WHITELIST ]]; then
        echo "4lw.commands.whitelist=$ZOO_4LW_COMMANDS_WHITELIST" >> "$CONFIG"
    fi

fi

# Write myid only if it doesn't exist
if [[ ! -f "$ZOO_DATA_DIR/myid" ]]; then
    echo "${ZOO_MY_ID:-1}" > "$ZOO_DATA_DIR/myid"
fi

exec "$@"

Tag summary

Content type

Image

Digest

Size

87.4 MB

Last updated

about 6 years ago

docker pull freemanliu/zookeeper:3.6.1