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

How can I setup and deploy a database with Deis (PaaS)

I'm trying to setup a database with Deis. I know this is possible, but there doesn't seem to be any documentation about how to do it other than setting an ENV variable.How could I setup say a MongoDB or Cassandra docker container and then deploy…
Cameron A. Ellis
  • 3,833
  • 8
  • 38
  • 46
9
votes
1 answer

"Push rejected, failed to compile Multipack app" when deploying heroku-buildpack-nodejs and heroku-buildpack-ruby-minimal

I'm using heroku-buildpack-multi: BUILDPACK_URL=https://github.com/ddollar/heroku-buildpack-multi.git I'm trying to deploy with two buildpacks and am getting the following error: Fetching repository, done. Counting objects: 6, done. Delta…
Brian Takita
  • 1,615
  • 1
  • 15
  • 20
9
votes
5 answers

Heroku and OpenCV with Python

I'm trying to install OpenCV on Heroku so my Python web app can use OpenCV. How can I go about doing this? Thanks!
Jason B
  • 7,097
  • 8
  • 38
  • 49
9
votes
1 answer

heroku outputs "error fetching custom buildpack", but only sometimes

I have a Django project hosted on Heroku with a buildpack forked from cirlabs/heroku-buildpack-geodjango. Sometimes when I push to Heroku it responds with Counting objects: 16, done. Delta compression using up to 4 threads. Compressing objects: 100%…
Spencer Williams
  • 902
  • 8
  • 26
8
votes
1 answer

Selenium & Heroku: urllib3.exceptions.ProtocolError: ('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer'))

Setup: selenium: 3.141.0 python: 3.6.7 heroku-stack: heroku-18 headless-chrome: v71.0.3578.80 buildpack installed chromedriver: v2.44.609551 buildpack installed I'm getting this error when using selenium in…
madtyn
  • 1,469
  • 27
  • 55
8
votes
1 answer

How to include post install script in python setuptools

import os from setuptools import setup from distutils.command.install import install as _install def _post_install(dir): from subprocess import call call([sys.executable, 'post_script.py'], cwd=os.path.join(dir, 'script_folder')) class…
Minion-kunfu
  • 133
  • 1
  • 3
  • 10
8
votes
1 answer

How to have package.json not at top level of heroku app

I have this app that deploys to heroku: https://github.com/justin808/react-webpack-rails-tutorial http://react-webpack-rails-tutorial.herokuapp.com/ The technique is described here:…
justingordon
  • 12,553
  • 12
  • 72
  • 116
8
votes
3 answers

Heroku buildpack - Installing texlive binary package

I'm trying to install the texlive-full package on heroku through making a custom buildpack. I'm working on django application, so I'm currently using version of heroku-buildpack-python (https://github.com/heroku/heroku-buildpack-python). According…
optimista
  • 804
  • 1
  • 13
  • 27
8
votes
6 answers

Is there a working nodejs/phantomjs Heroku buildpack?

I'd like to deploy an app with a Procfile that runs web: node myapp.js Where myapp.js uses phantomjs-node to run headless webkit stuff, returning the results to browser requests. Is this possible?
Jordan Warbelow-Feldstein
  • 10,510
  • 12
  • 48
  • 79
7
votes
1 answer

spring boot bootBuildImage paketo ssl cert location?

TLDR: spring boot gradle bootBuildImage task fails with x509 cert validation error (due to zscaler). Where to add the root cert? Info We're using spring boot's (2.3) new "bootBuildImage" to build docker images. Recently our IT group turned on…
user331465
  • 2,984
  • 13
  • 47
  • 77
7
votes
1 answer

Heroku Review App not caching node_modules

I use the following buildpack: heroku-buildpack-nodejs And by default, it should cache and restore node_modules. yarn.lock file is located at the root of the application along with package.json. I've also added "cacheDirectories": [".cache/yarn"] to…
Oron Bendavid
  • 1,485
  • 3
  • 18
  • 34
7
votes
1 answer

Heroku - How do I install/run g++ on a dyno?

I want to be able to call g++ from the command line in my nodejs app (as part of the server response to a POST request).
Jonathan Paulson
  • 1,048
  • 6
  • 15
6
votes
2 answers

Is it possible to customize docker image generated with Spring Native (with buildpack)

I'm currently developping a Spring Native application, it's building using paketo buildpack and generating a Docker image. I was wondering if it's possible to customize the generated Docker image by adding third party tools (like a Datadog agent for…
6
votes
0 answers

Spring-Boot docker build with paketo fails on Bitbucket pipelines

My spring-boot projekts builds its docker image on bitbucket.org using the spring-boot-maven-plugin with its build-image goal. On pipelines we always get the following maven error: Docker API call to 'localhost:2375/v1.24/containers/create' failed…
6
votes
1 answer

How to run an executable on Heroku from node, works locally

This is my first SE question. Usually I can find an answer to anything fairly easily through this great website, but unfortunately on this occasion I can't find anything on what I am looking for, either here or elsewhere. Let me explain the…
djd
  • 686
  • 6
  • 18
1
2
3
31 32