微服务项目构建Docker镜像时缓存密钥计算失败错误求助
Docker构建微服务镜像时"target目录不存在"错误的解决建议
错误信息
failed to solve: failed to compute cache key: failed to calculate checksum of ref moby::wpj9ukdrfh21e1cvpctgp34fc: failed to walk /var/lib/docker/tmp/buildkit-mount3056715208/target: lstat /var/lib/docker/tmp/buildkit-mount3056715208/target: no such file or directory
docker-composeprocess finished with exit code 17
解决建议
- 核对构建上下文路径:Docker构建时会将指定上下文目录的所有内容传递给Docker daemon,若target目录不在该上下文内,Daemon无法读取。确认
docker-compose.yml中build字段的上下文指向项目根目录(即POM文件所在目录),示例配置:services: your-ms-service: build: . # 此处需指向包含target的项目根目录 - 重新执行Maven构建:即便确认target存在,也可能存在构建路径错误或隐性构建失败的情况。在项目根目录执行
mvn clean package -DskipTests,确保target目录重新生成且包含完整的构建产物。 - 检查Dockerfile的文件拷贝指令:查看Dockerfile中
COPY/ADD指令的路径是否正确,比如COPY target/*.jar /app/app.jar,需保证target目录相对于构建上下文的路径无误。若Dockerfile不在项目根目录,需在docker-compose.yml中明确指定上下文和Dockerfile路径:build: context: . # 项目根目录 dockerfile: ./docker/Dockerfile # Dockerfile的相对路径 - 修复目录权限:target目录或其文件权限不足可能导致Docker daemon无法访问。执行
chmod -R 755 target赋予常规可读可执行权限后重试构建。 - 重启Docker服务:Docker daemon状态异常可能引发缓存清理后仍存在的残留问题。Linux环境执行
systemctl restart docker,Windows/Mac直接重启Docker Desktop,之后再重新执行构建命令。
内容的提问来源于stack exchange,提问作者brohjoe
相关产品推荐
相关产品推荐

