Hacker News new | ask | show | jobs
by jacques_chester 2815 days ago
> Aren't they just shell scripts?

They can be written in any language. I have personally worked on buildpacks written in bash, golang, ruby, python and I forget what else.

> Heroku makes a big deal about them, but most Unix people have similar things floating around in ~/bin.

I don't know that I agree. Could you elaborate a bit?

1 comments

All the ones I've looked at have been shell, as Buildpacks are used to build systems. Python would work too.

They're useful, but they're not an 'invention' or a 'technology' any more than any other bootstrap shell script is.

Nothing is new under the sun and any Turing complete system can do what any other Turing complete system can do.

There's more than "can it run a command?" here. For example, I find that vanishly few operators managing fleets with tens of thousands of containers are prepared to go along with "just run this random bash script on the VM; I promise to keep it up to date".

Yes, Buildpacks are trusted maintained bash scripts. In that way, as you mention, they're better than random bash scripts. That doesn't make them novel. I know you said nothing is new, and I presume you mean completely new, but there's not a single novel thing about this.

Another poster on this thread is using the term 'invented'. Another is describing them as a 'technology' that needs to be understood. Describing a bootstrap script this way sets an incredibly low bar for DevOps.

I think you're dramatically underestimating what a buildpack is.

The Java buildpack is a Ruby application with a modular dependency download/caching subsystem to enable both internet-connected and air-gapped enviroments, hundreds of unit and integration tests, support for runtime injection and configuration modification for TLS certificates, support for several languages including Scala , Groovy, Clojure, support for several package types, several app runtimes, etc. https://github.com/cloudfoundry/java-buildpack

The PHP buildpack is a Python application with a modular dependency download/caching subsystem to enable both internet-connected and air-gapped environments, hundreds of unit and integration tests, support for easily configuring many different PHP extensions, libraries and modules, and extension points to customize the container staging behavior. https://github.com/cloudfoundry/php-buildpack

For developers, this saves a lot of time, effort, and variance for staging their containers.

For operators, this enables a control point that simplifies CI/CD pipelines dramatically and standardizes a means of containerization across projects.

It might not be for everyone, but I think it's a useful alternative to Dockerfiles.

Yep it's a Ruby script that deploys Java. It can run offline. And run tests. And install certs. Nice script.

> For developers, this saves a lot of time, effort, and variance for staging their containers.

Yes. This is scripting. Scripting is good. Sharing your deploy scripts with others is good too. Stop trying to pretend this is a new technology.