如何解决AWS App Runner中Docker磁盘空间不足(ENOSPC)问题?
解决AWS App Runner ENOSPC磁盘空间不足问题
- 排查容器内部磁盘占用:App Runner监控显示的40GB是实例总存储,但容器的可写层(比如
/tmp、应用缓存目录)可能被大量未清理的文件占满。进入容器执行df -h命令,查看各目录的磁盘使用情况,重点定位prerender缓存目录、日志目录的占用。 - 自动清理应用缓存:错误提示是prerender缓存更新失败,说明缓存文件没有定期清理。修改应用代码,添加缓存过期逻辑,自动删除过期的缓存文件;或者在启动脚本中加入定时清理任务(比如
cron),定期清理指定缓存目录。 - 调整实例存储大小:App Runner支持配置实例存储容量(最高100GB),可以尝试增大实例存储配额,重新部署服务后观察问题是否缓解。
- 优化Docker镜像与挂载配置:检查Dockerfile,用
VOLUME指令将缓存、临时目录挂载到实例存储,避免占用容器可写层;同时清理镜像中不必要的文件(如安装包、临时构建文件),减小镜像体积,降低可写层压力。 - 分析App Runner日志:在AWS控制台查看服务的详细日志,找出持续占用磁盘的文件或进程,定位具体的磁盘消耗来源,针对性处理。
内容的提问来源于stack exchange,提问作者Nitin k
相关产品推荐
相关产品推荐

