distillery v2.0.0-rc.1 Mix.Releases.Profile

Represents the configuration profile for a specific environment and release. More generally, a release has a profile, as does an environment, and when determining the configuration for a release in a given environment, the environment profile overrides the release profile.

Options

- `output_dir`: path to place generated release
- `vm_args`: path of the vm.args file to use
- `cookie`: the secret cookie to use for distributed Erlang
- `sys_config`: path of a custom sys.config file to use
- `code_paths`: additional code paths to make available
- `no_dot_erlang`: build boot scripts with given no_dot_erlang setting
- `executable`: whether this release is an executable type or not
- `exec_opts`: a keyword list of options for executable mode
  - `transient`: whether the extracted contents of an executable will be cleaned up on shutdown
- `erl_opts`: a string containing flags to pass to the underlying VM
- `run_erl_env`: options to pass to `run_erl` in daemon mode
- `dev_mode`: instead of copying files into the release, they are symlinked for performance,
              and enabling the use of code reloading in a release
- `include_erts`: true to include the system ERTS, false to not include ERTS at all,
                  or a path to the ERTS to include, i.e. `"/usr/local/lib/erlang"`
- `include_src`: true to include source files in the release, false to not
- `include_system_libs`: deprecated, automatically determined
- `included_configs`: a list of paths to include extra `sys.config` files from,
                      e.g. `["/etc/sys.config"]`
- `config_providers`: a list of custom config providers,
                      e.g. `[MyCustomProvider, {MyOtherProvider, [:foo]}]`
- `appup_transforms`: a list of custom appup transforms,
                      e.g. `[MyCustomTransform, {MyOtherTransform, [:foo]}]`
- `strip_debug_info`: true to strip debug chunks from BEAM files, false to leave them as-is
- `plugins`: a list of plugins, e.g. `[MyPlugin, {MyOtherPlugin, [:foo]}]`
- `overlay_vars`: a keyword list of vars to make available in overlays
- `overlays`: a list of overlays to apply, see the Overlay module docs for more
- `overrides`: a list of overridden overlay vars (to override internal vars)
- `commands`: a keyword list of custom commands, e.g. `[test: "path/to/test/script"]`

Hooks

The following options all take a path to a directory containing the scripts which will be executed at the given point in the release lifecycle:

- `pre_configure_hooks`: before the system has generated config files
- `post_configure_hooks` after config files have been generated
- `pre_start_hooks`: before the release is started
- `post_start_hooks`: after the release is started
- `pre_stop_hooks`: before the release is stopped
- `post_stop_hooks`: after the release is stopped
- `pre_upgrade_hooks`: just before a release upgrade is installed
- `post_upgrade_hooks`: just after a release upgrade is installed

Link to this section Summary

Link to this section Types

Link to this type t()
t() :: %Mix.Releases.Profile{
  included_configs: [String.t()],
  appup_transforms: [module() | {module(), [term()]}],
  include_erts: nil | boolean() | String.t(),
  include_system_libs: nil | boolean() | String.t(),
  pre_upgrade_hooks: nil | String.t(),
  post_start_hooks: nil | String.t(),
  post_configure_hooks: nil | String.t(),
  pre_stop_hooks: nil | String.t(),
  overlay_vars: nil | Keyword.t(),
  sys_config: nil | String.t(),
  pre_start_hooks: nil | String.t(),
  vm_args: nil | String.t(),
  overlays: Mix.Releases.Overlay.overlay(),
  run_erl_env: nil | String.t(),
  post_upgrade_hooks: nil | String.t(),
  config_providers: [module() | {module(), [term()]}],
  config: nil | String.t(),
  strip_debug_info: nil | boolean(),
  output_dir: nil | String.t(),
  commands: nil | [{atom(), String.t()}],
  plugins: [module()],
  erts_version: nil | String.t(),
  cookie: nil | Atom.t(),
  dev_mode: nil | boolean(),
  pre_configure_hooks: nil | String.t(),
  overrides: nil | [{atom(), String.t()}],
  erl_opts: nil | String.t(),
  code_paths: nil | [String.t()],
  exec_opts: term(),
  executable: term(),
  no_dot_erlang: nil | boolean(),
  post_stop_hooks: nil | String.t(),
  include_src: nil | boolean()
}