前端应用构建突然失败问题排查求助
前端构建失败排查求助
前端应用构建突然失败,4天前构建任务还能正常运行,当前无论执行新操作还是复用之前成功的构建任务,均出现报错。已检查近期代码变更,未发现与GitHub配置相关的修改,恳请帮忙定位问题原因。
构建报错日志
#17 [final 3/6] COPY --from=builder /home/node/app/dist/apps//* /usr/share/nginx/html #17 ERROR: lstat /var/lib/docker/tmp/buildkit-mount3999339759/home/node/app/dist/apps: no such file or directory ------ > [final 3/6] COPY --from=builder /home/node/app/dist/apps//* /usr/share/nginx/html: ------ Dockerfile:14 -------------------- 12 | 13 | RUN rm /usr/share/nginx/html/index.html 14 | >>> COPY --from=builder /home/node/app/dist/apps/$PROJECT_NAME/* /usr/share/nginx/html 15 | COPY nginx/default.conf /etc/nginx/conf.d/default.conf 16 | COPY nginx/nginx.conf /etc/nginx/nginx.conf -------------------- ERROR: failed to solve: lstat /var/lib/docker/tmp/buildkit-mount3999339759/home/node/app/dist/apps: no such file or directory Error: buildx failed with: ERROR: failed to solve: lstat /var/lib/docker/tmp/buildkit-mount3999339759/home/node/app/dist/apps: no such file or directory
Dockerfile配置
FROM node:18.17-alpine AS builder ARG PROJECT_NAME USER node RUN mkdir -p /home/node/app WORKDIR /home/node/app COPY --chown=node package.json . RUN yarn install --verbose COPY --chown=node . . RUN yarn build $PROJECT_NAME production FROM nginx:1.15.8-alpine AS final RUN rm /usr/share/nginx/html/index.html COPY --from=builder /home/node/app/dist/apps/$PROJECT_NAME/* /usr/share/nginx/html COPY nginx/default.conf /etc/nginx/conf.d/default.conf COPY nginx/nginx.conf /etc/nginx/nginx.conf RUN apk update
GitHub Workflow配置
name: Build Check On PR on: workflow_call: inputs: ENV_VARIABLES_PATH: required: true type: string jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Set Environment Variables uses: ./.github/actions/setvars with: varFilePath: ${{ inputs.ENV_VARIABLES_PATH }} - name: Set up Docker uses: actions/setup-node@v3 with: node-version: '14' - name: Build check uses: docker/build-push-action@v2 with: context: . build-args: | PROJECT_NAME=${{ env.PROJECT_NAME }} push: false
排查方向建议
验证PROJECT_NAME参数传递:
- 在Workflow的
Build check步骤前添加echo "PROJECT_NAME: ${{ env.PROJECT_NAME }}",确认环境变量是否正确设置 - 在Dockerfile的builder阶段
RUN yarn build前添加RUN echo "PROJECT_NAME: $PROJECT_NAME",检查构建参数是否传入容器内部
- 在Workflow的
检查构建产物生成情况:
- 在Dockerfile的builder阶段
RUN yarn build后添加RUN ls -la /home/node/app/dist/apps/,确认是否生成了对应项目的目录,同时查看yarn build命令是否有隐藏报错 - 排查yarn依赖安装是否完整,检查
yarn install --verbose的输出是否有失败提示
- 在Dockerfile的builder阶段
核对Node/Yarn版本一致性:
- 在Dockerfile的builder阶段添加
RUN node -v && yarn -v,确认容器内的Node/Yarn版本是否与之前成功构建时一致 - Workflow中
setup-node@v3设置的node14仅作用于宿主环境,Docker构建使用的是node:18.17-alpine,若项目对Node版本敏感,可能导致构建产物差异
- 在Dockerfile的builder阶段添加
检查构建上下文与.dockerignore:
- 确认项目根目录的
.dockerignore文件是否新增了排除规则,比如是否忽略了src、package.json等构建必需文件 - 验证Docker构建上下文是否包含所有需要的文件,避免因文件缺失导致构建失败
- 确认项目根目录的
内容的提问来源于stack exchange,提问作者c4lypso
相关产品推荐
相关产品推荐

