构建Dockerfile遇路径不存在错误:failed to compute cache key: "/source" not found
Docker构建错误:"/source" not found 解决方法
错误原因
Docker构建时仅能访问构建上下文目录内的文件。你的Dockerfile位于myapp/deployment目录下,若执行构建时将上下文设为deployment目录,../source和../package*.json会指向上下文范围外的路径,Docker无法跨上下文访问文件,因此触发该错误。
解决方法
方法一:调整构建命令与Dockerfile路径
- 执行构建时,将上下文指定为
myapp根目录,同时指定Dockerfile的相对路径:
cd myapp docker build -t your-image-name -f deployment/Dockerfile .
- 修改Dockerfile中的
COPY路径(去掉../,因为上下文已切换到根目录):
FROM node:18-alpine ENV NODE_ENV=production WORKDIR /usr/src/app COPY package*.json /usr/src/app/ RUN npm install --production --silent COPY source /usr/src/app/dist ENV PORT 3001 EXPOSE ${PORT} ENV SERVICE_VERSION 1.0.2 ENV NODE_ENV=production # 修正原Dockerfile中拼写错误的NODE-ENV CMD ["node", "dist/app.js"]
方法二:迁移Dockerfile到根目录(可选)
将deployment目录下的Dockerfile移动到myapp根目录,此时构建命令简化为:
cd myapp docker build -t your-image-name .
Dockerfile中的COPY路径无需修改,直接使用package*.json和source即可。
额外注意
- 构建上下文目录(即命令中的
.)不要包含过多无关文件,否则会增加构建时的文件传输体积。 - 原Dockerfile中存在重复的
NODE_ENV环境变量,且有一处拼写错误(NODE-ENV),建议统一修正为NODE_ENV=production,避免环境变量冲突。
内容的提问来源于stack exchange,提问作者user2570135
相关产品推荐
相关产品推荐

