制作zookeeper镜像
Dockerfile如下:
FROM harbor-server.linux.io/base-images/ubuntu-jdk-base:8u131
ENV ZK_VERSION 3.4.14
ADD zookeeper-3.4.14.tar.gz /apps/
RUN mv /apps/zookeeper-3.4.14 /apps/zookeeper
&& mkdir -p /apps/zookeeper/data /apps/zookeeper/wal /apps/zookeeper/log
COPY conf /apps/zookeeper/conf/
COPY bin/zkReady.sh /apps/zookeeper/bin/
COPY entrypoint.sh /
ENV PATH=/apps/zookeeper/bin:${ PATH}
ZOO_LOG_DIR=/apps/zookeeper/log
ZOO_LOG4J_PROP=“INFO, CONSOLE, ROLLINGFILE”
JMXPORT=9010
ENTRYPOINT [ “/entrypoint.sh” ]
CMD [ “zkServer.sh”, “start-foreground” ]
EXPOSE 2181 2888 3888 9010
其中conf目录下存在两个文件,zoo.cfg(zookeeper的配置文件)和log4j.properties(zookeeper日志相关配置),zoo.cfg内容如下:
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/apps/zookeeper/data
dataLogDir=/apps/zookeeper/wal
#snapCount=100000
autopurge.purgeInterval=1
clientPort=2181
quorumListenOnAllIPs=true
log4j.properties内容如下:
Define some default values that can be overridden by system properties
zookeeper.root.logger=INFO, CONSOLE, ROLLINGFILE
zookeeper.console.threshold=INFO
zookeeper.log.dir=/apps/zookeeper/log
zookeeper.log.file=zookeeper.log
zookeeper.log.threshold=INFO
zookeeper.tracelog.dir=/apps/zookeeper/log
zookeeper.tracelog.file=zookeeper_trace.log
ZooKeeper Logging Configuration
Format is " (, )+
DEFAULT: console appender only
log4j.rootLogger=${zookeeper.root.logger}
Example with rolling log file
#log4j.rootLogger=DEBUG, CONSOLE, ROLLINGFILE
Example with rolling log file and tracing
#log4j.rootLogger=TRACE, CONSOLE, ROLLINGFILE, TRACEFILE
Log INFO level and above messages to the console
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.Threshold=${zookeeper.console.threshold}
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%d{ ISO8601} [myid:%X{ myid}] - %-5p [%t:%C{ 1}@%L] - %m%n
Add ROLLINGFILE to rootLogger to get log file output
Log DEBUG level and above messages to a log file
log4j.appender.ROLLINGFILE=org.apache.log4j.RollingFileAppender
log4j.appender.ROLLINGFILE.Threshold= z o o k e e p e r . l o g . t h r e s h o l d l o g 4 j . a p p e n d e r . R O L L I N G F I L E . F i l e = {zookeeper.log.threshold} log4j.appender.ROLLINGFILE.File= zookeeper.log.thresholdl