Docker 上的 Alpine Linux:是否可以配置线程堆栈大小?

Docker 上的 Alpine Linux:是否可以配置线程堆栈大小?

我注意到一个应用程序(用 C++ 编写)在 Alpine 上崩溃,出现分段错误。

经过一番调查后,问题似乎出在 Alpine 的线程堆栈大小太小。

事实上,在其他官方发行版映像(如 Debian)上运行相同程序时不会出现相同的问题。

是否可以配置基于 Alpine 的 docker 镜像的线程堆栈大小?

答案1

使用 Alpine Linux 中的 pthreads 库创建的线程的默认线程堆栈大小非常小,这可能会导致您遇到的分段错误等问题。要增加线程堆栈大小,您可以PTHREAD_STACK_MIN在构建 Docker 映像时将环境变量设置为更大的值。

FROM alpine:latest

ENV PTHREAD_STACK_MIN 2097152

# rest of the Dockerfile

我们将其设置PTHREAD_STACK_MIN为 2097152 字节,即 2MB。您可以调整此值以使其最适合您的应用程序。

相关内容