KISO Crate is a Command Line Interface (CLI) tool which analyses your Rails project, and correctly generates all of the necessary Dockerfiles and
docker-compose.yamlfiles so that you can completely containerize your development environment, with an exact one-to-one match of your environment: bundler version, gem version, ruby version and so on will all be matched into the containers.
Crate also provides a host of additional commands for managing the lifecycle of containers and viewing logs, as well as executing commands within shells inside the containers.
You can also apply fine grained controls to what Crate does via a
.kiso-crate.yml'cratefile' and override any of the default settings.
The following is a brief overview of the phases that Crate will execute to analyze your Rails project:
#Analysis Phase: Targets
Crate will look at the following things to match to your environments:
- Ruby Version
- Rails Version
- Bundler Version
- Gem version
- Node version
- NPM version (if applicable)
- Yarn version (if applicable)
- .env file
- Database (postgresql | sqlite | mysql)
The Builder pattern is used in the Dockerfiles to ensure that the smallest possible final image is produced to host your app. Based on the information found when analyzing your Rails app, Crate is able to produce a custom Dockerfile that requires only the very necessary libraries to support your app.