我怎样才能让 docker 容器存活足够长的时间以便 New Relic 发送跟踪异常?

How can I keep docker container alive long enough for New Relic send traced exceptions?

我们在 docker 容器中 运行 php cli 命令,安装了 New Relic 守护程序以跟踪异常。问题是 New Relic 在 interval of 1 minute 上发送异常跟踪,但是当我们的 php 进程因异常而崩溃时,容器会立即被杀死。

是否有一种(简单的)解决方案可以在 php 进程终止后让容器保持活动状态大约一分钟,例如将其包装在其他 script/program 中?

感谢 user2915097 的评论,这让我开始思考,我们找到了解决方案。我们写了一个小脚本,我们使用容器的入口点并在脚本失败时休眠。

cron-php-入口点:

#!/bin/sh

eval "$@" || (echo 'Delaying exit for 60 seconds for New Relic to send its report...' && sleep 60)

要添加到 Dockerfile 的行:

COPY cron-php-entrypoint /usr/local/bin/

ENTRYPOINT ["cron-php-entrypoint"]