尽管--restart标志似乎很简单明了,但在尝试使用它时我提出了许多问题:
ENTRYPOINT
定义-重新启动期间实际定义的语义是什么?exec
进入容器(我在DDC上)并杀死-9,该过程将重新启动,但是如果我不docker kill
这样做,则重新启动。为什么?我今天有更多时间来调试它->因为我使用的是“官方”泊坞窗映像,所以几乎看不到发生了什么。为了解决这个问题,我扩展了官方形象并调用了我自己的入口点。Dockerfile:
FROM officialImage:version
ENV envOne=value1 \
envTwo=value2
COPY wrapper-entrypoint.sh /
ENTRYPOINT ["/wrapper-entrypoint.sh"]
然后,我在wrapper-entrypoint.sh
脚本中执行了“ set -x”并调用了原始脚本:
#!/bin/bash
set -x
echo "Be pedantic: all args passed: $@"
bash -x ./original-entrypoint.sh "$@"
由此我发现:
ENTRYPOINT
使用原始参数调用原始文件。我使用的官方图片检测到它已经初始化,因此采取了不同的行动。这就是为什么我对语义感到困惑。通过使用,-x
我可以查看实际情况。docker kill
停止重启,但这就是我所看到的-至少在Docker Data Center上是如此。ENTRYPOINT
请根据重新启动时的条件保存给定脚本可能采取的操作。本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句