Questions tagged [buildpack]

A buildpack is a unit of work that inspects your application source code and formulates a plan to build and run your application. Use this tag when using buildpacks, like if there's a failure, or if you are developing buildpacks. This can be used for both traditional buildpacks, like on Cloud Foundry or Heroku, or with Cloud Native Buildpacks.

What's a Buildpack?

A buildpack is a unit of work, typically a script or application, that runs against your application source code and produces a runnable artifact.

A buildpack goes through two main phases: detect and build. During the detect phase, the buildpack will determine if it knows how to build your application. If it does, then during the build phase, the buildpack will execute and package your application into a format that can easily be executed.

The net result is that buildpacks will take your application from its raw source code and generate a runnable artifact. Historically, the runnable artifact has been an archive file, but in the latest iteration, called Cloud Native Buildpacks, it produeces an OCI compliant image that can be run with Docker, Kubernetes or anything that supports running OCI images.

History

Buildpacks were first conceived by Heroku in 2011. Since then, they have been adopted by Cloud Foundry and other PaaS such as Google App Engine, Gitlab, Knative, Deis, Dokku, and Drie.

Buildpacks History

The Cloud Native Buildpacks project was initiated by Pivotal and Heroku in January 2018 and joined the Cloud Native Sandbox in October 2018. The project aims to unify the buildpack ecosystems with a platform-to-buildpack contract that is well-defined and that incorporates learnings from maintaining production-grade buildpacks for years at both Pivotal and Heroku.

Cloud Native Buildpacks embrace modern container standards, such as the OCI image format. They take advantage of the latest capabilities of these standards, such as cross-repository blob mounting and image layer "rebasing" on Docker API v2 registries.

472 questions
30
votes
8 answers

Why does Heroku fail to detect Node.js buildpack?

I git cloned a Node.js application (the version specified in the package.json being 4.1.2 and that of my local machine being 6.2.2) and tried to git push on Heroku. But it failed to build and gave this error: Failed to detect set buildpack…
Shree
  • 533
  • 1
  • 5
  • 10
23
votes
3 answers

How can I flush the Heroku buildpack CACHE_DIR?

During development of our Python/Django application, we accidentally introduced package requirements in requirements.txt that installed conflicting versions of a library. Heroku has cached the broken requirements in the CACHE_DIR specified by the…
Andrew Gorcester
  • 19,595
  • 7
  • 57
  • 73
22
votes
2 answers

Spring Boot 2.3.0 buildpack builds image with creation date 40 years ago

I've tried to use buildpack in a maven project with Spring Boot 2.3.0 running: mvn spring-boot:build-image Image was created just fine, but I see the following info for it: REPOSITORY TAG IMAGE…
Aleksandr Erokhin
  • 1,904
  • 3
  • 17
  • 32
19
votes
2 answers

Installing custom builds heroku and issue with Library paths

I'm attempting to install a custom build on heroku, so I'm using a variety of ways to attempt a third part installing using the buildpacks. In my .buildpacks file I…
disruptive
  • 5,687
  • 15
  • 71
  • 135
17
votes
3 answers

python buildpack - fatal error: sasl/sasl.h: No such file or directory

I get the following error installing sasl in my Bluemix app: Installing collected packages: sasl, thrift-sasl Running setup.py install for sasl: started Running setup.py install for sasl: finished with status 'error' …
Chris Snow
  • 23,813
  • 35
  • 144
  • 309
15
votes
4 answers

Heroku: unable to connect to chromedriver 127.0.0.1:9515 when using Watir/Selenium

This runs locally (without specifying driver_path), but not on Heroku. Code: Selenium::WebDriver::Chrome.driver_path = ENV['GOOGLE_CHROME_SHIM'] browser = Watir::Browser.new :chrome I've confirmed below values in heroku rails…
tim_xyz
  • 11,573
  • 17
  • 52
  • 97
12
votes
3 answers

How do I uninstall this buildpack in Heroku?

I installed heroku-buildpack-php-tyler on my Heroku app a few days ago, and it all seemed to work fine. I installed it by running the following command: heroku config:set…
Tom Oakley
  • 6,065
  • 11
  • 44
  • 73
12
votes
3 answers

Have you managed to make your node nginx proxy setup on Heroku work?

Have you managed to make your node + nginx proxy setup on Heroku work? Could you, please, tell me how have your organized the directories structure and the files in each directory before doing "git push heroku master"? Which buildpack did you use? I…
T900M
  • 149
  • 2
  • 5
11
votes
3 answers

How to add extra linux dependencies into a spring-boot buildpack image?

I updated my spring-boot application to use buildpacks to create my docker-image instead of a dockerfile. I also use Apache POI in my application and since that update I get an error when generating an xlsx file. After some digging, I think it…
11
votes
2 answers

Can Selenium and Chrome buildpack installs be cached on HerokuCI?

I've just started using HerokuCI. I have a few Selenium tests so I've added buildpacks in my app.json. { "buildpacks": [ { "url": "heroku/ruby" } ], "environments": { "test": { "addons": ["heroku-postgresql:in-dyno",…
Schwern
  • 153,029
  • 25
  • 195
  • 336
11
votes
3 answers

Heroku and slug size bloat

I'm starting to hit a wall with my Heroku app. I'm well aware of the normal issues with slug size, re: images, PDFs, and other materials but my problem likely revolves around other assets brought in by bower or possibly build…
ere
  • 1,739
  • 3
  • 19
  • 41
10
votes
5 answers

Puppeteer error on Heroku: Could not find Chromium

I'm a little new to deploying/hosting Node apps and Puppeteer. But, I'm facing an issue though with my app on Heroku when trying to use Puppeteer. The full error is: Error: Could not find Chromium (rev. 1056772). This can occur if…
RainMan
  • 101
  • 1
  • 3
10
votes
1 answer

Cache Cloud Native Buildpacks/Paketo.io pack CLI builds on GitHub Actions (e.g. with Spring Boot/Java/Maven buildpacks)?

I'm working on a Spring Boot application that should be packaged into a OCI container using Cloud Native Build Packs / Paketo.io. I build it with GitHub Actions, where my workflow build.yml looks like this: name: build on: [push] jobs: …
jonashackt
  • 12,022
  • 5
  • 67
  • 124
10
votes
1 answer

Execute Spring buildpacks when calling docker-compose build command

I'm using Spring buildpacks introduced by Spring Boot 2.3.0.M1 for creating Docker images of Spring based applications. Everything goes well, I can create docker images for each application by executing ./gradlew bootBuildImage Gradle task, point…
Michal
  • 113
  • 8
10
votes
4 answers

Equivalent of Google's JIB for Node.JS?

Is there one equivalent of Google's JIB or BuildPacks for Node.JS ? It is my understanding that JIB allows to build OCI container images from within the project's build tool like Gradle or Maven, as a developer we only have to include a plugin into…
Luis Trigueiros
  • 636
  • 7
  • 21
1
2 3
31 32