在某些站点中,无头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来解决此问题?
答案 0 :(得分:1)
如第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
使用--disable-dev-shm-usage
将/dev/shm
的大小设置为合理的数量docker run -it --shm-size=1g
,用您想要的任意数量替换1g
。