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.
Philosophy
Section titled “Philosophy”- 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.tomlso it can easily be overwritten in your application.
Customization
Section titled “Customization”Use a mise configuration file or environment variables to customize mise in the Railpack-generated container. Configuration files are generally a better idea.
Configuration Files
Section titled “Configuration Files”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.lockfiles co-located with any detected*.tomlconfig
Example: Precompiled Ruby
Section titled “Example: Precompiled Ruby”To opt-in to non-default features like precompiled Ruby, add a
mise.toml to your repository:
[tools]ruby = "3"
[settings]ruby.compile = false