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

部署至DigitalOcean时Node版本解析错误的排查求助

部署Node.js应用到DigitalOcean构建失败排查

问题详情

我尝试将GitHub上的应用部署至DigitalOcean应用服务器,但构建失败。构建日志如下:

[2022-12-05 11:33:05] ╭──────────── git repo clone ───────────╼
[2022-12-05 11:33:05] │  › fetching app source code
[2022-12-05 11:33:05] │ => Selecting branch "master"
[2022-12-05 11:33:06] │ => Checking out commit "079ec218fe19fe3c2f73cce87cf61776e1f50dfa"
[2022-12-05 11:33:06] │ 
[2022-12-05 11:33:06] │  ✔ cloned repo to /workspace
[2022-12-05 11:33:07] ╰────────────────────────────────────────╼
[2022-12-05 11:33:07] 
[2022-12-05 11:33:07]  › configuring build-time app environment variables:
[2022-12-05 11:33:07]      KBOARDS_APP_KEY LOCAL_BASE_URL
[2022-12-05 11:33:07] 
[2022-12-05 11:33:07]  › configuring custom build command to be run at the end of the build:
[2022-12-05 11:33:07]    │ npm run build
[2022-12-05 11:33:07] 
[2022-12-05 11:33:07] ╭──────────── buildpack detection ───────────╼
[2022-12-05 11:33:08] │ Detected the following buildpacks suitable to build your app:
[2022-12-05 11:33:08] │ 
[2022-12-05 11:33:08] │    heroku/nodejs-engine   v0.5.1  
[2022-12-05 11:33:08] │    digitalocean/node      v0.3.4  (Node.js)
[2022-12-05 11:33:08] │    digitalocean/procfile  v0.0.3  (Procfile)
[2022-12-05 11:33:08] │    digitalocean/custom    v0.1.1  (Custom Build Command)
[2022-12-05 11:33:08] │ 
[2022-12-05 11:33:08] │ For documentation on the buildpacks used to build your app, please see:
[2022-12-05 11:33:08] │ 
[2022-12-05 11:33:08] │    Node.js  v0.3.4  https://do.co/apps-buildpack-node
[2022-12-05 11:33:08] ╰─────────────────────────────────────────────╼
[2022-12-05 11:33:08] 
[2022-12-05 11:33:08] ╭──────────── app build ───────────╼
[2022-12-05 11:33:09] │ ---> Node.js Buildpack
[2022-12-05 11:33:09] │ ---> Installing toolbox
[2022-12-05 11:33:09] │ ---> - jq
[2022-12-05 11:33:09] │ ---> - yj
[2022-12-05 11:33:09] │ ---> Getting Node version
[2022-12-05 11:33:09] │ ---> Resolving Node version
[2022-12-05 11:33:10] │ ERROR: failed to build: exit status 1
[2022-12-05 11:33:11] │ 
[2022-12-05 11:33:11] │ 
[2022-12-05 11:33:11] │ For documentation on the buildpacks used to build your app, please see:
[2022-12-05 11:33:11] │ 
[2022-12-05 11:33:11] │    Node.js  v0.3.4  https://do.co/apps-buildpack-node
[2022-12-05 11:33:11] │ 
[2022-12-05 11:33:11] │  ✘ build failed

我的package.json中包含如下声明:

"version":"0.0.0",
  "engines": {
    "node": "^18.6.0",
    "npm": "^8.14.0"
  },

DigitalOcean应用拓扑结构如下:

databases:
- engine: PG
  name: kbdb
  num_nodes: 1
  size: professional-xs
  version: "12"
envs:
- key: LOCAL_BASE_URL
  scope: RUN_AND_BUILD_TIME
  value: ${APP_URL}
name: kboards-staging
region: fra
services:
- build_command: npm run build
  environment_slug: node-js
  envs:
  - key: DATABASE_URL
    scope: RUN_TIME
    value: ${kbdb.DATABASE_URL}
  github:
    branch: master
    repo: zpiecuch81/kBoards
  http_port: 8080
  instance_count: 1
  instance_size_slug: professional-s
  name: kboards
  routes:
  - path: /
  run_command: npm start
  source_dir: /

错误描述「ERROR: failed to build: exit status 1」参考价值有限,我不清楚问题所在。该应用在本地可正常运行,部署至Heroku服务器也能正常工作。请问问题根源可能是什么?有人遇到过类似问题吗?

另外:我曾三次尝试在DigitalOcean社区提问页面发布该问题,每次看起来都发布成功了,但之后始终找不到我的帖子:(


排查方向

  • Node.js版本兼容性问题:你指定的Node.js版本是^18.6.0,而DigitalOcean使用的Node.js buildpack版本v0.3.4对Node.js 18.x的支持可能不完善。可以尝试修改engines里的Node版本为18.x,或者在项目根目录添加.nvmrc文件写入18.6.0强制指定版本。
  • 构建依赖或环境变量问题:检查KBOARDS_APP_KEY等构建时环境变量是否正确赋值;可以修改build_command为npm install --verbose && npm run build,查看详细的依赖安装报错信息,排查是否有依赖缺失或权限问题。
  • Buildpack冲突问题:日志中同时检测到heroku/nodejs-engine和digitalocean/node两个Node相关buildpack,可能存在冲突。可以在DigitalOcean应用设置中手动指定只使用digitalocean/node buildpack。
  • 缓存问题:尝试清除DigitalOcean应用的构建缓存后重新触发部署,避免旧依赖或版本残留导致的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 01:25:21