Search code examples
node.jsclouddigital-oceanbuildpack

Resolving Node version error while deployin on DigitalOean


I'm trying to deploy my app from github to DigitalOcean app server and the build fails. The build log is as follows:

[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

In the package.json I have following declarations:

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

DigitalOcean app topology is following:

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: /

The description ERROR: failed to build: exit status 1 doesn’t help me much. I don't know why it doesn't work. It works when run locally and also run properly when deployed to Heroku server. Any hint what can be the source of this? Anyone met with such problem?

Btw.: I've tried to post this question 3 times on DigitalOcean community questions page and always it looked like it's posted, and never could I find it later :(


Solution

  • Turned out, that DigitalOcean doesn't support NodeJS 18 yet and this is causing the problem :(

    Only NodeJS 14 and 16 for now.

    Edit:

    Here's more info on this: https://docs.digitalocean.com/products/app-platform/reference/buildpacks/nodejs/

    Just specify in your node app's package.json like this "engines": { "node": "16.x"}, or "engines": { "node": "14.x"},