由于文件句柄限制错误,我的 docker 构建失败。他们崩溃了
Error: EMFILE: too many open files
当我在容器上检查 ulimit -n 时,我看到
-n: file descriptors 1024
所以我将以下标志传递给我的构建命令
docker build --ulimit nofile=65536:65536 -t web .
但这并没有改变任何东西,我的容器仍然显示
-n: file descriptors 1024
无论我做什么,我似乎都无法更改 ulimit 文件描述符限制。
我在这里做错了什么?
于是,我发现了原因。发布答案以防其他人遇到同样的问题,因为我只是在此浪费了一天的大部分时间。我一直在调试一个运行时间很长的构建并且一直在使用
export DOCKER_BUILDKIT=1
启用一些扩展的构建信息。非常有用的时间等,虽然看起来好像启用 DOCKER_BUILDKIT 完全忽略传递给 docker build 命令的 ulimit 标志。
当我设置
export DOCKER_BUILDKIT=0
有用。长话短说,避免使用带有 ulimit 参数的 buildkit
| 归档时间: |
|
| 查看次数: |
1898 次 |
| 最近记录: |