PyCharm向Docker daemon发送构建上下文35MB后失败求助
针对PyCharm社区版2023.1.4通过套接字连接Mac Docker daemon,构建镜像到35MB时出现java.io.IOException: com.sun.jna.LastErrorException: [32] Broken pipe错误,且终端构建正常的问题,可尝试以下方案:
检查构建上下文过滤规则
确认项目根目录的.dockerignore文件已正确配置,且PyCharm的Docker构建配置已启用该文件。操作路径:Run/Debug Configurations -> Docker构建配置 -> 勾选Use .dockerignore,或手动添加排除目录(如node_modules/、.git/等),减少构建上下文的大小,避免传输过载。调整PyCharm Docker连接超时
打开Settings/Preferences->Build, Execution, Deployment->Docker,编辑当前套接字连接,将Connection timeout和Read timeout从默认值(如30秒)调整为120秒以上,给大文件传输足够时间。修改Docker daemon配置参数
在Mac上创建或编辑~/.docker/daemon.json,添加以下配置减少并发上传压力:{ "max-concurrent-uploads": 1, "mtu": 1500 }保存后重启Docker daemon,避免因并发上传导致套接字连接中断。
更新或调整PyCharm Docker插件
打开Settings/Preferences->Plugins,找到Docker插件,检查并更新至适配当前PyCharm版本的最新版;若更新后问题仍存在,可尝试降级插件到稳定版本,或直接升级PyCharm至最新社区版。手动指定构建上下文路径
在PyCharm的Docker构建配置中,将Context folder手动设置为Dockerfile所在的具体子目录,而非整个项目根目录,缩小构建上下文范围,降低传输数据量。
内容的提问来源于stack exchange,提问作者Sandor

