Buildpacks vs. Dockerfiles

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
  • rules_docker

    Discontinued Rules for building and handling Docker images with Bazel

  • During the last 3 years I've had the pleasure of using Bazel's rules_docker to generate all my container images (https://github.com/bazelbuild/rules_docker).

    In a nutshell, rules_docker is a set of build rules for the Bazel build system (https://bazel.build). What's pretty nice about these rules is that they don't rely on a Docker daemon. They are rules that directly construct image tarballs that you can either load into your local Docker daemon or push to a registry.

    What's nice about this approach is that image generation works on any operating system. For example, even on a Mac or Windows system that doesn't have Docker installed, you're able to build Linux containers. They are also fully reproducible, meaning that you often don't need to upload layers when pushing (either because they haven't changed, or because some colleague/CI job already pushed those layers).

    I guess rules_docker works fine for a variety of programming languages. I've mainly used it with Go, though.

  • community

    Community content for the Cloud Native Buildpacks (CNB) project (by buildpacks)

  • A list of adopters (many of which are hosting providers) is here: https://github.com/buildpacks/community/blob/main/ADOPTERS.m...

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • feed-test

  • I use Nix to do something similar: https://gitlab.com/kevincox/feed-test/-/blob/8b217add5fc11bb...

  • php-dist

  • Relying on something like paketo may or may not be a great idea. I decided to give it a go on a little PHP 8 project. I get an error saying PHP 8 isn't supported as it's using 0.1.0 of the PHP buildpack. Then I go to file an issue (especially since PHP 8 has been available for several months), only to discover it was released 4 days ago[1]. This kind of turns me off to relying on it. What if there was a vulnerability in PHP 8? Would I want my software to wait at least 4 days before I could update my dependencies?

    You give up a lot of control for "simplicity" but I'm not sure simple is always better. Sometimes it is, but often it's deceptive.

    [1]https://github.com/paketo-buildpacks/php-dist/releases/tag/v...

  • go

    A Cloud Native Buildpack for Go (by paketo-buildpacks)

  • https://github.com/paketo-buildpacks/go/search?l=shell for example. But the situation on many Dockerfile may not be better I have to admit.

  • github-config

    Common repository configuration

  • These are for Github actions, taken from a shared repo: https://github.com/paketo-buildpacks/github-config

  • nodejs

    A Cloud Native Buildpack for Node.JS (by paketo-buildpacks)

  • This is especially true of Paketo's buildpacks, which tend to do exactly one thing each. E.g., Paketo Node.js buildpack is just a configuration file that's composed of other buildpacks: https://github.com/paketo-buildpacks/nodejs/blob/main/buildp...

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

    WorkOS logo
NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts