我的泊坞窗启动了Zookeeper,但随后它自动存在

时间:2018-07-14 05:16:32

标签: docker dockerfile

我编写ockfile启动zookeeper

FROM buildpack-deps:sid-scm

RUN apt-get update && apt-get install -y --no-install-recommends \
        bzip2 \
        unzip \
        xz-utils \
        gettext-base \
&& rm -rf /var/lib/apt/lists/*

COPY zookeeper-3.4.12.tar.gz /opt
COPY config.template.properties /opt
RUN tar xfz /opt/zookeeper-3.4.12.tar.gz -C /opt
ENV ZK_HOME /opt/zookeeper-3.4.12
COPY startzookeeper.sh /opt
RUN  chmod a+x /opt/startzookeeper.sh $ZK_HOME
CMD   ["/opt/startzookeeper.sh"]

startzookeeper.sh文件为

#!/usr/bin/env bash

eval "cat <<EOF
$(</opt/config.template.properties)
EOF
" | tee /opt/zoo.cfg 2> /dev/null


#echo "$ZK_HOME" > 2.txt
cp /opt/zoo.cfg "$ZK_HOME"/conf
#
exec "$ZK_HOME/bin/zkServer.sh" start

但是当我运行docker ps时,它是空的。 我尝试添加tail -f / dev / null,但是它不起作用。 我不知道为什么,动物园管理员应该一直运行,为什么存在? 感谢任何建议。

1 个答案:

答案 0 :(得分:0)

您可以修改脚本以模仿官方zookeeper-docker (来自hub.docker.com)的脚本

docker-entrypoint.shexec "$@"结尾,并执行"zkServer.sh", "start-foreground".

重要的部分是start-foreground option,可确保该过程不会立即退出,因为这也会退出您的容器。