Skip to content

Latest commit

 

History

History
150 lines (94 loc) · 4.26 KB

README.md

File metadata and controls

150 lines (94 loc) · 4.26 KB

EDIB mix task

Hex.pm package version Hex.pm package docs Hex.pm package license Build Status (master) Coverage Status (master) Deps Status Inline docs

A mix task for EDIB (elixir docker image builder).

TOC

EDIB creates a docker image of your application release.

Installation

Just run this and confirm:

mix archive.install https://git.io/edib-0.8.1.ez

Don't forget to add exrm to your project:

defp deps do
  [
    {:exrm, "~> 1.0"},
  ]
end

Usage

mix edib

Help

mix help edib

Options

Name, prefix, tag

Override the (repository) name of the docker image

mix edib --name <NAME>
mix edib -n <NAME>

Set only a specific prefix for the docker image name (default: local)

mix edib --prefix <PREFIX>
mix edib -p <PREFIX>

Set a specific tag for the docker image

mix edib --tag <TAG>
mix edib -t <TAG>

If --name and --prefix are given, the name option takes precedence (prefix will be ignored).

Release strip and zip (EXPERIMENTAL)

Following options use https://github.com/ntrepid8/ex_strip_zip in the edib-tool build environment.

All .beam files in a release can be stripped (mostly of debug information):

mix edib --strip
mix edib -x

More technical information about stripping: http://erlang.org/doc/man/beam_lib.html#strip-1

All OTP applications can be bundled into archives (.ez files):

mix edib --zip
mix edib -z

WARNING: Do not use this if you have NIFs in your codebase or dependencies.

More technical information about "Loading of Code From Archive Files": http://erlang.org/doc/man/code.html#id104826

Silent mode (quiet mode)

Silence build output of EDIB (will be logged to .edib.log instead)

mix edib --silent
mix edib -s

Volume mappings

Map additional volumes for use while building the release

mix edib --mapping <FROM>:<TO>[:<OPTION>]
mix edib -m <FROM>:<TO>[:<OPTION>]

For common cases there are some mapping shorthands:

Include the host user's SSH keys for private GitHub repositories

mix edib --ssh-keys

Include host user's .hex/packages cache

Can improve build times when the host's .hex cache is available for every build run (tip for Travis CI: use their directory caching)

mix edib --hex

Include host user's .npm package cache

Can improve build times when the host's .npm cache is available for every build run (tip for Travis CI: use their directory caching)

mix edib --npm

Docker related

Docker flags (mostly for debug purposes):

Run the build step privileged

mix edib --privileged

Do not remove intermediate containers on build runs

mix edib --no-rm