Heroku > Render Migration: Build Error

Hi folks,

I’ve been unable to migrate my Python/Django web app from Heroku to Render. The build process is failing.

I used the guide here: Migrate from Heroku to Render

The import tool made the render.yaml, .render-buildpacks.json, and Dockerfile.render as expected.

I worked through a few issues related to the build process failing that I’ll include here just in case I somehow messed up:

  • render.yaml showed “numInstances: 0”, which caused the build pipeline to fail because it most be positive, if the field exists. I’m assuming it was set to 0 because I had no Heroku dyno (I was running on the free plan, and that went poof – so no more instances). I just set it to 1.

  • The pipeline was failing because for some reason there was an expectation that I was using NodeJs in my app. I’m not quite sure how this expectation was set. My .render-buildpacks.json just has “heroku/python”. To try to get it to stop complaining I added the missing package.json. I don’t have any experience with NodeJs, I initialized the package.json file with npm init --yes

package.json

{
  "name": "dynsol",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "repository": {
    "type": "git",
    "url": "git+https://github.com/Jormogundr/dynsol.git"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "bugs": {
    "url": "https://github.com/Jormogundr/dynsol/issues"
  },
  "homepage": "https://github.com/Jormogundr/dynsol#readme"
}

.render-buildpacks.json

{
  "buildpacks": [
    "heroku/python"
  ]
}
  • I was getting some errors relating to the heroku stack version. My site was running on heroku stack 20, but the build env var was using heroku stack 22, so I just set the env var to 20. This allowed me to progress in the build process. I also set the arg for the Dockerfile.render to heroku-20

Ok, so after all that: the build is failing because /render/build-scripts/apply-buildpacks.py is missing.

Render instance output:

Dec 26 02:03:05 PM  #11 [builder 5/3] RUN /render/build-scripts/apply-buildpacks.py ${HEROKU_STACK}
Dec 26 02:03:05 PM  #0 0.080 /bin/bash: /render/build-scripts/apply-buildpacks.py: No such file or directory
Dec 26 02:03:05 PM  #11 ERROR: process "/bin/bash -c /render/build-scripts/apply-buildpacks.py ${HEROKU_STACK}" did not complete successfully: exit code: 127
Dec 26 02:03:05 PM  ------
Dec 26 02:03:05 PM   > [builder 5/3] RUN /render/build-scripts/apply-buildpacks.py ${HEROKU_STACK}:
Dec 26 02:03:05 PM  #0 0.080 /bin/bash: /render/build-scripts/apply-buildpacks.py: No such file or directory
Dec 26 02:03:05 PM  ------
Dec 26 02:03:05 PM  Dockerfile.render:25
Dec 26 02:03:05 PM  --------------------
Dec 26 02:03:05 PM    23 |     # in place. We then run the apply-buildpacks.py script here because, unlike our
Dec 26 02:03:05 PM    24 |     # `v2` image, this allows us to expose build-time env vars to your app.
Dec 26 02:03:05 PM    25 | >>> RUN /render/build-scripts/apply-buildpacks.py ${HEROKU_STACK}
Dec 26 02:03:05 PM    26 |
Dec 26 02:03:05 PM    27 |     # We strongly recommend that you package a Procfile with your application, but
Dec 26 02:03:05 PM  --------------------
Dec 26 02:03:05 PM  error: failed to solve: process "/bin/bash -c /render/build-scripts/apply-buildpacks.py ${HEROKU_STACK}" did not complete successfully: exit code: 127

Any ideas?

The github repo is private but I’d be happy to share relevant files.

Here’s the complete terminal output:

Dec 26 02:02:21 PM  ==> Cloning from https://github.com/Jormogundr/dynsol...
Dec 26 02:02:22 PM  ==> Checking out commit 2dee4b5f4b2ffc0bde6e60e09c1d3ea4104b5a08 in branch main
Dec 26 02:02:26 PM  #1 [internal] load .dockerignore
Dec 26 02:02:26 PM  #1 transferring context: 2B done
Dec 26 02:02:26 PM  #1 DONE 0.0s
Dec 26 02:02:26 PM  
Dec 26 02:02:26 PM  #2 [internal] load build definition from Dockerfile.render
Dec 26 02:02:26 PM  #2 transferring dockerfile: 2.70kB done
Dec 26 02:02:26 PM  #2 DONE 0.0s
Dec 26 02:02:26 PM  
Dec 26 02:02:26 PM  #3 [internal] load metadata for ghcr.io/renderinc/heroku-app-builder:heroku-20
Dec 26 02:02:27 PM  #3 DONE 1.1s
Dec 26 02:02:27 PM  
Dec 26 02:02:27 PM  #4 [internal] load metadata for ghcr.io/renderinc/heroku-app-runner:heroku-20
Dec 26 02:02:27 PM  #4 DONE 1.2s
Dec 26 02:02:27 PM  
Dec 26 02:02:27 PM  #5 [runner 1/4] FROM ghcr.io/renderinc/heroku-app-runner:heroku-20@sha256:6921bf7925c618278429738835f454e454fc4a99574a74f9e17fd266b4054660
Dec 26 02:02:27 PM  #5 resolve ghcr.io/renderinc/heroku-app-runner:heroku-20@sha256:6921bf7925c618278429738835f454e454fc4a99574a74f9e17fd266b4054660 done
Dec 26 02:02:27 PM  #5 ...
Dec 26 02:02:27 PM  
Dec 26 02:02:27 PM  #6 [internal] load build context
Dec 26 02:02:27 PM  #6 transferring context: 2.39MB 0.2s done
Dec 26 02:02:27 PM  #6 DONE 0.2s
Dec 26 02:02:27 PM  
Dec 26 02:02:27 PM  #5 [runner 1/4] FROM ghcr.io/renderinc/heroku-app-runner:heroku-20@sha256:6921bf7925c618278429738835f454e454fc4a99574a74f9e17fd266b4054660
Dec 26 02:02:28 PM  #5 extracting sha256:846c0b181fff0c667d9444f8378e8fcfa13116da8d308bf21673f7e4bea8d580
Dec 26 02:02:30 PM  #5 extracting sha256:846c0b181fff0c667d9444f8378e8fcfa13116da8d308bf21673f7e4bea8d580 1.8s done
Dec 26 02:02:30 PM  #5 extracting sha256:3d1b6fbc1f48787214094eef519dcff9dcade6f52d29909e25b092234697d0fa
Dec 26 02:02:32 PM  #5 extracting sha256:3d1b6fbc1f48787214094eef519dcff9dcade6f52d29909e25b092234697d0fa 1.7s done
Dec 26 02:02:32 PM  #5 extracting sha256:5f330f0081a8ac8507ac8348e2c0ff280f54fd7c8fc8a840f078190ced77b7fd
Dec 26 02:02:35 PM  #5 ...
Dec 26 02:02:35 PM  
Dec 26 02:02:35 PM  #7 [builder 1/3] FROM ghcr.io/renderinc/heroku-app-builder:heroku-20@sha256:48641f8b66ae61f229562c6d0e66c82d54dfab78859a15b2dd53969e32ca9c38
Dec 26 02:02:35 PM  #7 resolve ghcr.io/renderinc/heroku-app-builder:heroku-20@sha256:48641f8b66ae61f229562c6d0e66c82d54dfab78859a15b2dd53969e32ca9c38 done
Dec 26 02:02:35 PM  #7 sha256:4f4fb700ef54461cfa02571ae0db9a0dc1e0cdb5577484a6d75e68dc38e8acc1 32B / 32B 0.2s done
Dec 26 02:02:35 PM  #7 sha256:d60f3c072851f899eb77971a4b739d4e4dd456eb97b4ad41a0497d9704921403 2.37MB / 2.37MB 0.4s done
Dec 26 02:02:35 PM  #7 sha256:6a8a67162b6b981ed1253a2233b9a92a29da9947f2e23b95bc238d6f7adbb664 230.60kB / 230.60kB 0.3s done
Dec 26 02:02:35 PM  #7 sha256:e143c31d97a901119dc0e73389b9ab53bb53d56720b6af62eede727dbc17b9a3 27.95kB / 27.95kB 0.3s done
Dec 26 02:02:35 PM  #7 sha256:6414379df98f2982348b384ca36051c287af5ed4cfa5ef0476140d9e9ff8cae8 29.28kB / 29.28kB 0.3s done
Dec 26 02:02:35 PM  #7 sha256:74b07c61f564d08d5f63b0a044d1ffbf55a75eb5bb39560284b65d4689528e08 49.86kB / 49.86kB 0.3s done
Dec 26 02:02:35 PM  #7 sha256:21911bc876d9013a1fe269b3568d2370dc79000dabec48a6a57b97ae98d31e17 21.44kB / 21.44kB 0.3s done
Dec 26 02:02:35 PM  #7 sha256:2ac49f96bec2b6c2b510c0f9ca70f62c7fe2f5e57de09c53a8cc94492fe29cfd 92.72kB / 92.72kB 0.3s done
Dec 26 02:02:35 PM  #7 sha256:2081bcad183261f621c219e6f382076e3f4c14f2ab9fe0db3e103449489ba52a 130.72MB / 130.72MB 2.9s done
Dec 26 02:02:35 PM  #7 sha256:f46d4e77bcd8bc31067f2cc8c940d679b4bbb1773e33e2a21d2e276a29e23bc9 1.25kB / 1.25kB 0.3s done
Dec 26 02:02:35 PM  #7 sha256:c0adbe362f95a6f6b247ac8118e3321655c6aa8bb4e9603f63e6f0d46cbe9900 1.36kB / 1.36kB 0.3s done
Dec 26 02:02:35 PM  #7 sha256:bd526786033eadc4e22bcf99d8373c8543cdec6a28e687aaaf2e8a638b02f3fb 326B / 326B 0.3s done
Dec 26 02:02:35 PM  #7 sha256:67df33201224be294bceffb23c7565a8ea9d5678084cff186c50da71c95c4384 472B / 472B 0.5s done
Dec 26 02:02:35 PM  #7 sha256:d4a75f233070dbe127769e59520d91940643c32b83243c95a888e555effb2853 585B / 585B 0.3s done
Dec 26 02:02:35 PM  #7 sha256:a9cea9fa32ce1209639c3d7a0aec75f5324433d01d9dbe57567c21f1b1f15c9d 255B / 255B 0.3s done
Dec 26 02:02:35 PM  #7 sha256:d789745462cecdd0d47d6e0c452af847ed675966a0bb009326acee0b93b3cce6 201B / 201B 0.3s done
Dec 26 02:02:35 PM  #7 sha256:f6b9ee8a262579f85382493d33ee8028d25cf53183c66abd478845a641531219 249.39MB / 249.39MB 4.6s done
Dec 26 02:02:35 PM  #7 sha256:89c5a6e7c37e185d58e6315dd61fbf56f45c7c357d3e12402fb2f9a0b588f9a5 756B / 756B 0.3s done
Dec 26 02:02:35 PM  #7 DONE 7.3s
Dec 26 02:02:35 PM  
Dec 26 02:02:35 PM  #5 [runner 1/4] FROM ghcr.io/renderinc/heroku-app-runner:heroku-20@sha256:6921bf7925c618278429738835f454e454fc4a99574a74f9e17fd266b4054660
Dec 26 02:02:40 PM  #5 extracting sha256:5f330f0081a8ac8507ac8348e2c0ff280f54fd7c8fc8a840f078190ced77b7fd 8.1s done
Dec 26 02:02:40 PM  #5 extracting sha256:21c378d91bfc4b0d310522272a1e77817813e0d2d1799762245565abdbc4d966 0.0s done
Dec 26 02:02:40 PM  #5 extracting sha256:cc919a934a3afad3b59ef3d70d62676687413f4454630852d99b2333ce6d0ec6 0.0s done
Dec 26 02:02:40 PM  #5 DONE 12.7s
Dec 26 02:02:40 PM  
Dec 26 02:02:40 PM  #7 [builder 1/3] FROM ghcr.io/renderinc/heroku-app-builder:heroku-20@sha256:48641f8b66ae61f229562c6d0e66c82d54dfab78859a15b2dd53969e32ca9c38
Dec 26 02:02:40 PM  #7 extracting sha256:89c5a6e7c37e185d58e6315dd61fbf56f45c7c357d3e12402fb2f9a0b588f9a5 0.0s done
Dec 26 02:02:40 PM  #7 extracting sha256:f6b9ee8a262579f85382493d33ee8028d25cf53183c66abd478845a641531219
Dec 26 02:02:40 PM  #7 ...
Dec 26 02:02:40 PM  
Dec 26 02:02:40 PM  #5 [runner 1/4] FROM ghcr.io/renderinc/heroku-app-runner:heroku-20@sha256:6921bf7925c618278429738835f454e454fc4a99574a74f9e17fd266b4054660
Dec 26 02:02:40 PM  #5 extracting sha256:ec5ea64cab454df50048807ae310035d84101778985037ab7ad889594a38dad7 0.0s done
Dec 26 02:02:40 PM  #5 DONE 12.7s
Dec 26 02:02:40 PM  
Dec 26 02:02:40 PM  #7 [builder 1/3] FROM ghcr.io/renderinc/heroku-app-builder:heroku-20@sha256:48641f8b66ae61f229562c6d0e66c82d54dfab78859a15b2dd53969e32ca9c38
Dec 26 02:02:51 PM  #7 extracting sha256:f6b9ee8a262579f85382493d33ee8028d25cf53183c66abd478845a641531219 11.0s done
Dec 26 02:02:51 PM  #7 extracting sha256:d789745462cecdd0d47d6e0c452af847ed675966a0bb009326acee0b93b3cce6 0.0s done
Dec 26 02:02:51 PM  #7 extracting sha256:a9cea9fa32ce1209639c3d7a0aec75f5324433d01d9dbe57567c21f1b1f15c9d done
Dec 26 02:02:51 PM  #7 extracting sha256:d4a75f233070dbe127769e59520d91940643c32b83243c95a888e555effb2853 done
Dec 26 02:02:51 PM  #7 extracting sha256:67df33201224be294bceffb23c7565a8ea9d5678084cff186c50da71c95c4384 done
Dec 26 02:02:51 PM  #7 extracting sha256:bd526786033eadc4e22bcf99d8373c8543cdec6a28e687aaaf2e8a638b02f3fb done
Dec 26 02:02:51 PM  #7 extracting sha256:c0adbe362f95a6f6b247ac8118e3321655c6aa8bb4e9603f63e6f0d46cbe9900 done
Dec 26 02:02:51 PM  #7 extracting sha256:f46d4e77bcd8bc31067f2cc8c940d679b4bbb1773e33e2a21d2e276a29e23bc9 done
Dec 26 02:02:51 PM  #7 extracting sha256:2ac49f96bec2b6c2b510c0f9ca70f62c7fe2f5e57de09c53a8cc94492fe29cfd
Dec 26 02:02:51 PM  #7 extracting sha256:2ac49f96bec2b6c2b510c0f9ca70f62c7fe2f5e57de09c53a8cc94492fe29cfd 0.1s done
Dec 26 02:02:51 PM  #7 extracting sha256:2081bcad183261f621c219e6f382076e3f4c14f2ab9fe0db3e103449489ba52a
Dec 26 02:02:53 PM  #7 extracting sha256:2081bcad183261f621c219e6f382076e3f4c14f2ab9fe0db3e103449489ba52a 1.9s done
Dec 26 02:02:53 PM  #7 extracting sha256:21911bc876d9013a1fe269b3568d2370dc79000dabec48a6a57b97ae98d31e17 0.1s done
Dec 26 02:02:53 PM  #7 extracting sha256:74b07c61f564d08d5f63b0a044d1ffbf55a75eb5bb39560284b65d4689528e08
Dec 26 02:02:53 PM  #7 extracting sha256:74b07c61f564d08d5f63b0a044d1ffbf55a75eb5bb39560284b65d4689528e08 0.1s done
Dec 26 02:02:53 PM  #7 extracting sha256:6414379df98f2982348b384ca36051c287af5ed4cfa5ef0476140d9e9ff8cae8 0.0s done
Dec 26 02:02:53 PM  #7 extracting sha256:e143c31d97a901119dc0e73389b9ab53bb53d56720b6af62eede727dbc17b9a3 0.0s done
Dec 26 02:02:53 PM  #7 extracting sha256:6a8a67162b6b981ed1253a2233b9a92a29da9947f2e23b95bc238d6f7adbb664
Dec 26 02:02:53 PM  #7 extracting sha256:6a8a67162b6b981ed1253a2233b9a92a29da9947f2e23b95bc238d6f7adbb664 0.2s done
Dec 26 02:02:53 PM  #7 extracting sha256:d60f3c072851f899eb77971a4b739d4e4dd456eb97b4ad41a0497d9704921403
Dec 26 02:02:54 PM  #7 extracting sha256:d60f3c072851f899eb77971a4b739d4e4dd456eb97b4ad41a0497d9704921403 0.3s done
Dec 26 02:02:54 PM  #7 DONE 21.1s
Dec 26 02:02:54 PM  
Dec 26 02:02:54 PM  #7 [builder 1/3] FROM ghcr.io/renderinc/heroku-app-builder:heroku-20@sha256:48641f8b66ae61f229562c6d0e66c82d54dfab78859a15b2dd53969e32ca9c38
Dec 26 02:02:54 PM  #7 extracting sha256:4f4fb700ef54461cfa02571ae0db9a0dc1e0cdb5577484a6d75e68dc38e8acc1 0.0s done
Dec 26 02:02:54 PM  #7 DONE 21.1s
Dec 26 02:02:54 PM  
Dec 26 02:02:54 PM  #8 [builder 2/3] COPY --chown=1000:1000 . /app/
Dec 26 02:02:54 PM  #8 DONE 0.0s
Dec 26 02:02:54 PM  
Dec 26 02:02:54 PM  #9 [builder 3/3] RUN BUILDPACK_OVERRIDE=$(/tmp/scripts/get-buildpack-override /app); if [[ -z "${BUILDPACK_OVERRIDE}" ]]; then   for l in ruby nodejs clojure python java scala php go; do     cd /tmp/buildpacks/$l/*;     if bin/detect /app; then       STACK=heroku-20 SOURCE_VERSION=$(git -C /app rev-parse --verify HEAD) bin/compile /app /tmp/cache /tmp/env;       bin/release /app > /render/release.yaml;       break;     fi;   done; else   cd /tmp/buildpacks/$BUILDPACK_OVERRIDE/*;   STACK=heroku-20 SOURCE_VERSION=$(git -C /app rev-parse --verify HEAD) bin/compile /app /tmp/cache /tmp/env;   bin/release /app > /render/release.yaml; fi;
Dec 26 02:02:54 PM  #0 0.091 Node.js
Dec 26 02:02:54 PM  #9 0.093 fatal: not a git repository (or any of the parent directories): .git
Dec 26 02:02:54 PM  #9 0.468
Dec 26 02:02:54 PM  #9 0.468 -----> Creating runtime environment
Dec 26 02:02:54 PM  #9 0.475
Dec 26 02:02:54 PM  #9 0.476        NPM_CONFIG_LOGLEVEL=error
Dec 26 02:02:54 PM  #9 0.482        NODE_VERBOSE=false
Dec 26 02:02:54 PM  #9 0.483        NODE_ENV=production
Dec 26 02:02:54 PM  #9 0.483        NODE_MODULES_CACHE=true
Dec 26 02:02:54 PM  #9 0.488
Dec 26 02:02:54 PM  #9 0.488 -----> Installing binaries
Dec 26 02:02:54 PM  #9 0.615        engines.node (package.json):  unspecified
Dec 26 02:02:54 PM  #9 0.615        engines.npm (package.json):   unspecified (use default)
Dec 26 02:02:54 PM  #9 0.615
Dec 26 02:02:54 PM  #9 0.620        Resolving node version 16.x...
Dec 26 02:02:55 PM  #9 1.654        Downloading and installing node 16.19.0...
Dec 26 02:02:59 PM  #9 5.502        Using default npm version: 8.19.3
Dec 26 02:03:01 PM  #9 7.628
Dec 26 02:03:01 PM  #9 7.628 -----> Installing dependencies
Dec 26 02:03:01 PM  #9 7.633        Installing node modules (package.json)
Dec 26 02:03:02 PM  #9 8.206
Dec 26 02:03:02 PM  #9 8.206        up to date, audited 1 package in 183ms
Dec 26 02:03:02 PM  #9 8.208
Dec 26 02:03:02 PM  #9 8.208        found 0 vulnerabilities
Dec 26 02:03:02 PM  #9 8.282
Dec 26 02:03:02 PM  #9 8.282 -----> Build
Dec 26 02:03:02 PM  #9 8.459
Dec 26 02:03:02 PM  #9 8.459 -----> Caching build
Dec 26 02:03:02 PM  #9 8.459        - node_modules (nothing to cache)
Dec 26 02:03:02 PM  #9 8.901
Dec 26 02:03:02 PM  #9 8.901 -----> Pruning devDependencies
Dec 26 02:03:03 PM  #9 9.907
Dec 26 02:03:03 PM  #9 9.907        up to date, audited 1 package in 183ms
Dec 26 02:03:04 PM  #9 9.909
Dec 26 02:03:04 PM  #9 9.909        found 0 vulnerabilities
Dec 26 02:03:04 PM  #9 10.04
Dec 26 02:03:04 PM  #9 10.04 -----> Build succeeded!
Dec 26 02:03:05 PM  #9 DONE 11.6s
Dec 26 02:03:05 PM  
Dec 26 02:03:05 PM  #10 [builder 4/3] RUN if [[ -f /app/Procfile ]]; then   /tmp/scripts/create-process-types "/app/Procfile"; else   echo " A Procfile is required.";   exit 1; fi;
Dec 26 02:03:05 PM  #10 DONE 0.2s
Dec 26 02:03:05 PM  
Dec 26 02:03:05 PM  #11 [builder 5/3] RUN /render/build-scripts/apply-buildpacks.py ${HEROKU_STACK}
Dec 26 02:03:05 PM  #0 0.080 /bin/bash: /render/build-scripts/apply-buildpacks.py: No such file or directory
Dec 26 02:03:05 PM  #11 ERROR: process "/bin/bash -c /render/build-scripts/apply-buildpacks.py ${HEROKU_STACK}" did not complete successfully: exit code: 127
Dec 26 02:03:05 PM  ------
Dec 26 02:03:05 PM   > [builder 5/3] RUN /render/build-scripts/apply-buildpacks.py ${HEROKU_STACK}:
Dec 26 02:03:05 PM  #0 0.080 /bin/bash: /render/build-scripts/apply-buildpacks.py: No such file or directory
Dec 26 02:03:05 PM  ------
Dec 26 02:03:05 PM  Dockerfile.render:25
Dec 26 02:03:05 PM  --------------------
Dec 26 02:03:05 PM    23 |     # in place. We then run the apply-buildpacks.py script here because, unlike our
Dec 26 02:03:05 PM    24 |     # `v2` image, this allows us to expose build-time env vars to your app.
Dec 26 02:03:05 PM    25 | >>> RUN /render/build-scripts/apply-buildpacks.py ${HEROKU_STACK}
Dec 26 02:03:05 PM    26 |
Dec 26 02:03:05 PM    27 |     # We strongly recommend that you package a Procfile with your application, but
Dec 26 02:03:05 PM  --------------------
Dec 26 02:03:05 PM  error: failed to solve: process "/bin/bash -c /render/build-scripts/apply-buildpacks.py ${HEROKU_STACK}" did not complete successfully: exit code: 127


This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.