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 :(
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"},