add docker
This commit is contained in:
56
code/docker/zookeeper/Dockerfile
Normal file
56
code/docker/zookeeper/Dockerfile
Normal file
@ -0,0 +1,56 @@
|
||||
FROM openjdk:8-jre-alpine
|
||||
|
||||
# Install required packages
|
||||
RUN apk add --no-cache \
|
||||
bash \
|
||||
su-exec
|
||||
|
||||
ENV ZOO_USER=zookeeper \
|
||||
ZOO_CONF_DIR=/conf \
|
||||
ZOO_DATA_DIR=/data \
|
||||
ZOO_DATA_LOG_DIR=/datalog \
|
||||
ZOO_PORT=2181 \
|
||||
ZOO_TICK_TIME=2000 \
|
||||
ZOO_INIT_LIMIT=5 \
|
||||
ZOO_SYNC_LIMIT=2 \
|
||||
ZOO_MAX_CLIENT_CNXNS=60
|
||||
|
||||
# Add a user and make dirs
|
||||
RUN set -ex; \
|
||||
adduser -D "$ZOO_USER"; \
|
||||
mkdir -p "$ZOO_DATA_LOG_DIR" "$ZOO_DATA_DIR" "$ZOO_CONF_DIR"; \
|
||||
chown "$ZOO_USER:$ZOO_USER" "$ZOO_DATA_LOG_DIR" "$ZOO_DATA_DIR" "$ZOO_CONF_DIR"
|
||||
|
||||
ARG GPG_KEY=D0BC8D8A4E90A40AFDFC43B3E22A746A68E327C1
|
||||
ARG DISTRO_NAME=zookeeper-3.4.11
|
||||
|
||||
# Download Apache Zookeeper, verify its PGP signature, untar and clean up
|
||||
RUN set -ex; \
|
||||
apk add --no-cache --virtual .build-deps \
|
||||
ca-certificates \
|
||||
gnupg \
|
||||
libressl; \
|
||||
wget -q "https://www.apache.org/dist/zookeeper/$DISTRO_NAME/$DISTRO_NAME.tar.gz"; \
|
||||
wget -q "https://www.apache.org/dist/zookeeper/$DISTRO_NAME/$DISTRO_NAME.tar.gz.asc"; \
|
||||
export GNUPGHOME="$(mktemp -d)"; \
|
||||
gpg --keyserver ha.pool.sks-keyservers.net --recv-key "$GPG_KEY" || \
|
||||
gpg --keyserver pgp.mit.edu --recv-keys "$GPG_KEY" || \
|
||||
gpg --keyserver keyserver.pgp.com --recv-keys "$GPG_KEY"; \
|
||||
gpg --batch --verify "$DISTRO_NAME.tar.gz.asc" "$DISTRO_NAME.tar.gz"; \
|
||||
tar -xzf "$DISTRO_NAME.tar.gz"; \
|
||||
mv "$DISTRO_NAME/conf/"* "$ZOO_CONF_DIR"; \
|
||||
rm -rf "$GNUPGHOME" "$DISTRO_NAME.tar.gz" "$DISTRO_NAME.tar.gz.asc"; \
|
||||
apk del .build-deps
|
||||
|
||||
WORKDIR $DISTRO_NAME
|
||||
VOLUME ["$ZOO_DATA_DIR", "$ZOO_DATA_LOG_DIR"]
|
||||
|
||||
EXPOSE $ZOO_PORT 2888 3888
|
||||
|
||||
ENV PATH=$PATH:/$DISTRO_NAME/bin \
|
||||
ZOOCFGDIR=$ZOO_CONF_DIR
|
||||
|
||||
COPY docker-entrypoint.sh /
|
||||
RUN chmod +x /docker-entrypoint.sh
|
||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||
CMD ["zkServer.sh", "start-foreground"]
|
Reference in New Issue
Block a user