wrap icon indicating copy to clipboard operation
wrap copied to clipboard

Build, Publish & Deploy Elixir Infrastructure to the Cloud with Docker & Terraform

Wrap

Build Status Coverage Status hex.pm version

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

Installation

Add wrap to your list of dependencies in mix.exs

def deps do
  [
    {:wrap, "~> 0.0.9"}
  ]
end

Setup

Before using wrap run the setup task to create the required directory structure.

mix wrap.setup

Tasks

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