All checks were successful
continuous-integration/drone/push Build is passing
To create a cluster with distributed nodes, the following changes were made: * Use [`dns_cluster`][0] to execute distributed nodes * Add _script_ to execute distributed nodes locally Also, improve local execution by: * Use [`mix release`][1] to make easier [deploy `phoenix`][2] * Use [`compose watch`][3] to synchronize code from the host with the service Some minor improvements: * Ignore files and folders in git and docker * Remove boilerplate comments [0]: https://github.com/phoenixframework/dns_cluster [1]: https://hexdocs.pm/mix/Mix.Tasks.Release.html [2]: https://hexdocs.pm/phoenix/releases.html [3]: https://docs.docker.com/compose/how-tos/file-watch/ Co-authored-by: Joao P Dubas <joao.dubas@gmail.com> Reviewed-on: #96 Co-authored-by: Joao P Dubas <joao.dubas+gitea@gmail.com> Co-committed-by: Joao P Dubas <joao.dubas+gitea@gmail.com>
28 lines
708 B
Elixir
28 lines
708 B
Elixir
defmodule Wabanex.Application do
|
|
@moduledoc false
|
|
|
|
use Application
|
|
|
|
def start(_type, _args) do
|
|
children = [
|
|
Wabanex.PromEx,
|
|
Wabanex.Repo,
|
|
WabanexWeb.Telemetry,
|
|
{Phoenix.PubSub, name: Wabanex.PubSub},
|
|
{DNSCluster,
|
|
query: Application.get_env(:wabanex, :dns_cluster_query) || :ignore,
|
|
log: :info,
|
|
resolver: Application.get_env(:wabanex, :dns_cluster_resolver) || DNSCluster.Resolver},
|
|
WabanexWeb.Endpoint
|
|
]
|
|
|
|
opts = [strategy: :one_for_one, name: Wabanex.Supervisor]
|
|
Supervisor.start_link(children, opts)
|
|
end
|
|
|
|
def config_change(changed, _new, removed) do
|
|
WabanexWeb.Endpoint.config_change(changed, removed)
|
|
:ok
|
|
end
|
|
end
|