Using Nixpacks (a better alternative to Buildpacks), Hop can automatically detect the language of your app, removing the need to write a Dockerfile for most cases. If a Dockerfile is detected, it will just be built using regular Buildkit.

Caching

Docker layers are cached to speed up the build process on a per-deployment basis. As of today, we don’t bill for build cache although this may change in the future. Each deployment is assigned a quota of 50GB in build cache - usage can be tracked under the Resources tab within the deployment.

Environment Variables

Your deployment’s environment variables are injected into each build - any environment variables imported during runtime will also exist during build time.

Building locally with the CLI

By default, hop deploy spins up a server-side builder instance. To use your local machine’s cache and compute power to build & push your image instead, append the --local flag.

Customizing Configless Builds

If you don’t want to specify a Dockerfile then you can use the following environment variables to customize your build.

You can find more options on the Nixpacks documentation

VariableDescription
NIXPACKS_INSTALL_CMDOverride the install command
NIXPACKS_BUILD_CMDOverride the build command
NIXPACKS_START_CMDOverride the start command
NIXPACKS_PKGSAdditional Nix packages to install
NIXPACKS_APT_PKGSAdd additional Apt packages to install
NIXPACKS_LIBSAdd additional Nix libraries to make available
NIXPACKS_DEBIANEnable Debian base image, used for supporting OpenSSL 1.1