Docker 上的 Headless Chromium 失败

Headless Chromium on Docker fails

对于某些站点,无头 Chromium 在 运行 位于 Docker 容器内时失败:

[0520/093103.024239:ERROR:platform_shared_memory_region_posix.cc(268)] Failed to reserve 16728064 bytes for shared memory.: No space left on device (28)
[0520/093103.024591:ERROR:validation_errors.cc(76)] Invalid message: VALIDATION_ERROR_UNEXPECTED_NULL_POINTER (null field 1)
[0520/093103.024946:FATAL:memory.cc(22)] Out of memory. size=16723968

我应该如何调整 Docker 来解决这个问题?

如第 1 行所述,您 运行 共享内存不足。

[0520/093103.024239:ERROR:platform_shared_memory_region_posix.cc(268)] Failed to reserve 16728064 bytes for shared memory.: No space left on device (28)

这由 /dev/shm 处理,在 Docker 中设置为默认值 64mb,这对于现代 Web 应用程序来说并不多。

有关 /dev/shm 的上下文,请参阅此处 https://superuser.com/questions/45342/when-should-i-use-dev-shm-and-when-should-i-use-tmp

选项 1:

运行 chrome 与 --disable-dev-shm-usage

选项 2:

/dev/shm 大小设置为合理的数量 docker run -it --shm-size=1g1g 替换为您想要的任何数量。