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
6
votes
1 answer

Installing gerbv on Heroku

I am trying since a couple of months to be able to generate images of PCB gerbers using an online service, and thinking of spinning up my own. My choice is heroku ( open to changing), and the choice of the gerber parser/viewer is gerbv(again, open…
Rupin
  • 610
  • 7
  • 23
6
votes
1 answer

cloudfoundry: use an older buildpack version

Cloundfoundry recently updated its Java buildpack to version 2.5 (including java 8 and tomcat 8). I still would like to use version 2.4 since my app hasn't been upgraded to java 8 yet. What is the easiest way to do so? I can push the app using cf…
obecker
  • 2,132
  • 1
  • 19
  • 23
6
votes
1 answer

Deploying Rails 4.1 in a subdirectory to Heroku?

I have a directory structure like the following: my-app/ .git/ db/ <-- Database stuff lib/ <-- Business logic spec/ web/ <-- Rails Rails is in the web/ subdirectory of the repository. Heroku doesn't like this by default. I have a…
soundly_typed
  • 39,257
  • 5
  • 28
  • 36
6
votes
2 answers

How to unzip files in a Heroku Buildpack

I'm writing a custom Heroku buildpack (heroku-buildpack-fantom) for Fantom, and as part of the compile script I've downloaded a .zip file (from a language vendor), but how do I unzip it? unzip is not a recognised command. gunzip exists but I can't…
Steve Eynon
  • 4,979
  • 2
  • 30
  • 48
6
votes
3 answers

Access current git commit number from within Heroku app

I know the slug compiler removes the .git directory when creating a heroku slug, but is there any way to configure Heroku so that I can access the currently running git commit number from within my scripts? I'd like to be able to have a small link…
JP.
  • 5,507
  • 15
  • 59
  • 100
5
votes
1 answer

Spring Boot in Docker build by buildpack cannot load Font

My Spring Boot application runs in Docker and is build by gradlew bootBuildImage. When run in Docker container application cannot load fonts Caused by: java.lang.NullPointerException at java.desktop/sun.awt.FontConfiguration.getVersion(Unknown…
Bartosz Bilicki
  • 12,599
  • 13
  • 71
  • 113
5
votes
1 answer

google buildpack psycopg2-binary Error: pg_config executable not found

This is in my requirements.txt psycopg2-binary==2.8.3 # via -r requirements/base.in that I am building inside docker image. I was under impression that if I install psycopg2-binary vs psycopg2 I should not install additional postgresql devel…
DmitrySemenov
  • 9,204
  • 15
  • 76
  • 121
5
votes
5 answers

Cloud Native Buildpacks/Paketo with Java/Spring Boot: How to configure different JDK download uri (e.g. no access to github.com)

Having a Spring Boot app I tried to build it using the spring-boot-maven-plugin goal mvn spring-boot:build-image. But the build fails downloading the bellsoft-jre11.0.9.1+1-linux-amd64.tar.gz from github.com, since I don't have access to it from my…
jonashackt
  • 12,022
  • 5
  • 67
  • 124
5
votes
2 answers

ERROR: failed to launch: determine start command: when there is no default process a command is required

After upgrading spring boot to 2.4 we cannot run the final docker image that we create via this script: script: - echo $CI_JOB_TOKEN | docker login -u gitlab-ci-token --password-stdin $CI_REGISTRY - apk add openjdk11 - ./gradlew…
Stuck
  • 11,225
  • 11
  • 59
  • 104
5
votes
2 answers

Python cant find ODBC Driver on Heroku after setting everything

I have gone through every possible solution on the internet, but I'm unable to make pyobdc get the drivers on heroku. The steps I have used to create the app are as follows: heroku create heroku config:set FLASK_CONFIG=heroku heroku buildpacks:add…
The FPGA Race
  • 104
  • 1
  • 7
5
votes
2 answers

npm prune bad PATH? Failed to exec install script

When I run npm prune I get the following (verbose) error npm info lifecycle elm@0.19.0-bugfix2~install: elm@0.19.0-bugfix2 > elm@0.19.0-bugfix2 install node_modules/elm > binwrap-install sh: 1: binwrap-install: not found npm verb…
Jesse Shieh
  • 4,660
  • 5
  • 34
  • 49
5
votes
2 answers

Heroku: Unable to find chromedriver when using Selenium

I have a Ruby code that does this: browser = Watir::Browser.new(:chrome, switches: switches, headless: true) browser.goto(....) When I run the code on Heroku I get Selenium::WebDriver::Error::WebDriverError: Unable to find chromedriver. Please…
Leticia Esperon
  • 2,499
  • 1
  • 18
  • 40
5
votes
1 answer

Setting the right path on Heroku for a vendor library

This seems so simple but I can't seem to close this final gap. I recently added GSL to my Heroku based app via the Heroku buildpack for GSL/Ruby. Both the buildpack and related GSL gem appear to install just fine per the abbreviated push output…
Robert Vizza
  • 125
  • 1
  • 9
5
votes
2 answers

Building gems with jRuby cext on Heroku

I am trying to use the JRuby Heroku buildpack (https://github.com/jruby/heroku-buildpack-jruby) to run a simple test application. However, it seems that gems with C extensions cannot be compiled. For example, when doing a "git push heroku", the gems…
4
votes
2 answers

How to embed CA-certificates with spring-boot:build-image?

I need to add self-signed certificates to a spring-boot docker image using spring-boot:build-image and paketo-buildpacks/ca-certificates but couldn't get it working. So: where to put the certificates to add? in which format? how to define…
ch4mp
  • 6,622
  • 6
  • 29
  • 49
1 2
3
31 32