我编写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,但是它不起作用。 我不知道为什么,动物园管理员应该一直运行,为什么存在? 感谢任何建议。
答案 0 :(得分:0)
您可以修改脚本以模仿官方zookeeper-docker (来自hub.docker.com)的脚本
其docker-entrypoint.sh
以exec "$@"
结尾,并执行"zkServer.sh", "start-foreground"
.
重要的部分是start-foreground
option,可确保该过程不会立即退出,因为这也会退出您的容器。