You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

前端应用构建突然失败问题排查求助

前端构建失败排查求助

前端应用构建突然失败,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",检查构建参数是否传入容器内部
  • 检查构建产物生成情况:

    • 在Dockerfile的builder阶段RUN yarn build后添加RUN ls -la /home/node/app/dist/apps/,确认是否生成了对应项目的目录,同时查看yarn build命令是否有隐藏报错
    • 排查yarn依赖安装是否完整,检查yarn install --verbose的输出是否有失败提示
  • 核对Node/Yarn版本一致性:

    • 在Dockerfile的builder阶段添加RUN node -v && yarn -v,确认容器内的Node/Yarn版本是否与之前成功构建时一致
    • Workflow中setup-node@v3设置的node14仅作用于宿主环境,Docker构建使用的是node:18.17-alpine,若项目对Node版本敏感,可能导致构建产物差异
  • 检查构建上下文与.dockerignore:

    • 确认项目根目录的.dockerignore文件是否新增了排除规则,比如是否忽略了src、package.json等构建必需文件
    • 验证Docker构建上下文是否包含所有需要的文件,避免因文件缺失导致构建失败

内容的提问来源于stack exchange,提问作者c4lypso

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 18:40:22