Build, Publish & Deploy Elixir Infrastructure to the Cloud.
wrap
is an opinionated set of mix
tasks that:
- Builds an OTP release within Docker
- Publishes the container to a registry
- Deploys cloud infrastructure via Terraform
Add wrap
to your list of dependencies in mix.exs
def deps do
[
{:wrap, "~> 0.0.9"}
]
end
Before using wrap
run the setup task to create the required directory structure.
mix wrap.setup
mix wrap.gen.wrapper # Scaffold a wrapper module
mix wrap.gen.present # Scaffold a release present
mix wrap.list # List presents
mix wrap.build # Build docker images for elixir releases
mix wrap.publish # Publish latest docker images
mix wrap.plan # Plan terraform definition
mix wrap.apply # Apply terraform definition
mix wrap.destroy # Destroy terraform resources