Skip to content

Mise Configuration

Railpack is built on top of Mise. You can use the various mise configuration options to customize the Railpack-generated image. For instance, you can set environment variables, allow precompiled ruby versions, and add additional utilities like jq to your image all through the mise configuration toml.

  • We use the latest mise version. There is automated tooling setup to ensure the mise version on the latest Railpack version is no more than a couple weeks out of date.
  • Railpack assumes the default Mise configuration options. For instance, we won’t opt-in users to precompiled ruby ahead of when mise has scheduled it to become default.
  • Railpack generates global mise configuration based on analyizing the application source code. However, this global configuration is set in /etc/mise/config.toml so it can easily be overwritten in your application.

Use a mise configuration file or environment variables to customize mise in the Railpack-generated container. Configuration files are generally a better idea.

Railpack automatically detects mise configuration files and passes them into the build. This includes:

  • Config files: mise.toml, .mise.toml, mise/config.toml, .mise/config.toml, .config/mise.toml, .config/mise/config.toml, .tool-versions
  • Environment-specific configs: mise.*.toml, .mise.*.toml, .config/mise/conf.d/*.toml
  • Idiomatic version files: .ruby-version, .python-version, .python-versions, .node-version, .nvmrc, .go-version, .java-version, .sdkmanrc, .bun-version, .yvmrc
  • Lock files: mise.lock files co-located with any detected *.toml config

To opt-in to non-default features like precompiled Ruby, add a mise.toml to your repository:

[tools]
ruby = "3"
[settings]
ruby.compile = false