I’m on my day 3 trying to provision server on DO and I got to the point where I can build and deploy via edeliver/distillery. However I’m running into issue where app crashes with an error like this:
(UndefinedFunctionError) function Guardian.Plug.VerifySession.call/2 is undefined
So I figured guardian
app doesn’t get included in the release somehow?
EDIT: I just realised that Guardian is not in the list of the applications anyways. So I have no idea what’s going on. Why Guardian is not present in prod environment?
When I build locally I see this (I can’t see any warnings when doing mix edeliver build release
):
==> One or more direct or transitive dependencies are missing from
:applications or :included_applications, they will not be included
in the release:
:arc
:breadcrumble
:earmark
:elixir_make
:guardian
:html_sanitize_ex
:kerosene
:mochiweb
:phoenix_haml
This can cause your application to fail at runtime. If you are sure
that this is not an issue, you may ignore this warning.
My mix.exs has this defined (and everything works in dev just fine):
def application do
[mod: {LoadedBike, []},
applications: [:phoenix, :phoenix_pubsub, :phoenix_html, :cowboy, :logger, :gettext,
:phoenix_ecto, :postgrex, :comeonin, :arc_ecto, :edeliver]]
end
rel/config.exs
has this:
release :loaded_bike do
set version: current_version(:loaded_bike)
end
I poked around and found that you can add set :applications [...]
in there. But why? Shouldn’t it be implicit? Or do I really have to copy-paste things? What am I missing?
I’m really close. It’s just this problem and then I’ll have to deal with assets. If somebody can share /.deliver/config
for Phoenix 1.3 I’d appreciate it. I think biggest difference is that there’s /assets folder now.