библиотека undef проблема с выпуском rebar3 - PullRequest
0 голосов
/ 14 марта 2019

У меня странная проблема, которую я не могу понять из жизни.У меня есть приложение rebar3, из которого я сгенерировал релиз.Если я запускаю приложение, используя rebar3 shell, оно работает нормально, но если я запускаю скрипт выпуска с _build/prod/rel/app_name/bin/app_name, оно запускается, но завершается неудачно, когда код запускается для запуска лагера.Когда он пытается запустить lager:start, он возвращает undef, что приводит к завершению приложения.Я изучил все аспекты конфигурации приложения и не могу найти ничего, что указывало бы на то, почему это не работает.У кого-нибудь есть идеи?

rebar.conf

{erl_opts, [debug_info]}.
{deps, [
    {ranch, {git, "https://github.com/ninenines/ranch.git", {tag, "1.4.0"}}},
    {lager, {git, "https://github.com/erlang-lager/lager.git", {tag, "3.5.1"}}},
    {mongodb, {git, "https://github.com/comtihon/mongodb-erlang.git", {tag, "v3.0.2"}}},
    {eredis, {git, "https://github.com/wooga/eredis.git", {tag, "v1.1.0"}}}
       ]}.

{relx, [
    {release, { tyranny_authservice, "0.1.0" }, [tyranny_authservice, sasl] },
        {sys_config, "./config/sys.config"},
        {vm_args, "./config/vm.args"},
        {dev_mode, false},
        {include_erts, true},
        {extended_start_script, true}
       ]
}.

{profiles, [
        {prod, [{relx, [{dev_mode, false},
                          {include_erts, true},
                                {include_src, false}]}]
            }]
}.

{plugins, [rebar3_hex]}.

{erl_opts, [
        {parse_transform, lager_transform}
  ]}.

1 Ответ

0 голосов
/ 12 июня 2019
  1. Попробуйте включить lager как зависимое приложение в tyranny_authservice.app.src, например так:

    {приложения, [kernel, stdlib, lager]}.

  2. Другим вариантом является добавление

    {include_applications, [lager]}

в файл ресурсов приложения tyranny_authservice.app.src

...