Devbox: build your Docker image from `scratch`

How we created Devbox to solve our Docker dev environment woes at Jetpack.io

Devbox: build your Docker image from `scratch`

As your application gains traction, you're considering scaling it using Docker and Kubernetes. However, when searching for Docker images, you often encounter an overwhelming number of options or struggle to find the appropriate one. Even when you do find a suitable image, it doesn't align with your local environment.

Our struggles with containers at Jetify

Recently, our website nearly went down because of a Node.js version mismatch between production and development environments. At Jetify, we develop front-end projects and web apps locally and deploy them to Kubernetes using Docker containers. During deployment, a babel plugin error occurred. We discovered that the Node-16:alpine image silently upgraded Node.js from version 16.16 to 16.17. Consequently, we now have a mismatched Node.js version between our local development environments and the Docker containers.

We created Devbox to build Docker images from scratch

To address the above pain points, we developed Devbox, which constructs Docker images from scratch. With Devbox, compatibility issues with the base image are eliminated, as it includes the precise dependencies required for running your applications. Just use "devbox generate dockerfile" to automatically generate a Dockerfile for your Devbox project.

Devbox matches local shell environments to production

Devbox utilizes the Nix package manager to create a Nix shell for local development or a Docker image for remote deployments. It eliminates the need for running a Docker container locally, as Devbox shares the same package and dependencies in both the shell and container. Read more on Devbox and Docker comparison for local development.

How are we planning to use Devbox at Jetify?

In the upcoming weeks, we'll adopt Devbox as our primary development environment and integrate it into the GitHub CI/CD production pipeline across all our repositories. Our aim is to leverage Devbox to achieve faster and more dependable dev and prod environments for our entire infrastructure.

Stay up to Date with Jetify

If you're reading this, we'd love to hear from you about how you've been using Devbox for your projects. You can follow us on Twitter, or chat with our developers live on our Discord Server. We also welcome issues and pull requests on our Github Repo.