DEV Community

Marcos Henrique
Marcos Henrique

Posted on • Updated on


You should use Buildpacks instead Dockerfile and I'll tell you why

Everyone knows the benefits of docker, building containers from a dockerfile is lit asf🥵 in terms of productivity, we can build and distribute applications as a piece of cake.

Despite this developers must have a knowledge in detail of how the commands in a Dockerfile relate to Docker layers and the circumstances under which layers can, and can not, be reused.

Buildpacks abstract away much of the deeply understanding required to build a Docker image with battle-tested scripts leveraging advanced features like volumes to build images swiftly and wisely.

Okay, I get it! But show us why we should believe you 🤨

  • Buildpacks is a cncf projet;
  • Productivity: Removing a lot of onboarding friction for teams looking to move their applications in terms of a previous knowledge in docker;
  • Security: Many modern applications include dozens, if not thousands, of dependencies that perform many standard plumbing and infrastructural concerns;
  • Performance: Buildpacks are smarter in the way they handle application dependencies, Writing a Dockerfile that ensures that rebuilt images do so quickly and efficiently might as well be an "occultism art" 🧙‍♂️, Buildpacks encode this knowledge into their implementation.
  • It's not only for Docker: Buildpacks embrace the OCI format, so feel free to use some Podman, Containerd or RunC;

If you have that doubt and want to know how to implement, take a look at this amazing article by Matthew Casperson where he builds a node application and goes from docker to buildpacks.

Top comments (1)

clavinjune profile image
Clavin June

but still, using a private golang module has not supported yet

An Animated Guide to Node.js Event Loop

Node.js doesn’t stop from running other operations because of Libuv, a C++ library responsible for the event loop and asynchronously handling tasks such as network requests, DNS resolution, file system operations, data encryption, etc.

What happens under the hood when Node.js works on tasks such as database queries? We will explore it by following this piece of code step by step.