如何在alpine容器中生成coredump文件

How to generate coredump file in alpine container

我正在尝试开发一个开源 TSDB TDengine,并在 alpine 中编译它以使其 dockerized。编译后,只是 运行 taosd 二进制文件,它导致段错误(核心转储),但我找不到核心文件。

我已经搜索并使用 sysctl 设置核心模式,ulimic -c 是无限制的。但是它未能像下面那样应用 sysctl。

# ulimic -c
unlimited
# sysctl -w kernel.core_pattern=core-%e.%p.%h.%t
sysctl: error setting key 'kernel.core_pattern': Read-only file system

如何在alpine中生成核心文件?

我终于找到了解决方案:

docker run -it --rm --ulimit core=-1  --privileged -v $PWD:/coredump <myimage> bash

在容器中,设置核心模式和运行 app:

sysctl -w kernel.core_pattern=/coredump/core-%e.%p.%h.%t
app # coredumped to /coredump/ directory

由于我们将$PWD挂载到/coredump,所以我们可以在当前目录下看到核心文件。