Release configuration
By default, the release will happen creating a docker machine to build the release with distillery.
You can change it by a custom one:
# runs the release at a remote host
config :deli, :release, Deli.Release.Remote
# does something completely custom instead
config :deli, :release, Custom.Module
You can configure any module that implements Deli.Release.build/2
callback.
Configuring docker build
By default, if you don't configure release, Deli.Release.Docker
is the chosen behaviour.
You can configure details of this behaviour.
By default, the deli
centos image version is chosen.
You can configure a different image:
# use deli's debian image, latest
config :deli, :docker_build, image: {:deli, :debian}
# use deli's centos image, based on this tag
config :deli, :docker_build, image: {:deli, {:centos, "7.6.1810"}}
# deli generates an image based on elixir official docker image
config :deli, :docker_build, image: :elixir
# deli generates an image based on elixir official docker image with this tag
config :deli, :docker_build, image: {:elixir, "1.8.0-alpine"}
# deli images can also have beam dependencies configured
#
# if you don't set it, latest stable version available
# when the package was generated will be used
#
beam_versions = [
otp: "21.2.4",
elixir: "1.8.0",
rebar3: "3.6.1"
]
config :deli, :docker_build, image: {:deli, {:centos, "7.6.1810"}, beam_versions}
Configuring controller
By default, the release binary (/opt/APP/bin/APP
) is used to control the app (start, stop, restart, status, ping), but systemd's systemctl
can be configured as the app controller:
config :deli, :controller, Deli.Controller.Systemctl
You can configure any module that implements the Deli.Controller
behaviour.