У нас есть приложение Phoenix, которое в течение последнего года работало на Heroku в производстве.
Теперь я пытаюсь разрешить запускать версии приложения с запросом на вытягивание через приложения для проверки как часть конвейера Heroku .
Приложение имеет три сборочных пакета Heroku:
- https://buildpack-registry.s3.amazonaws.com/buildpacks/hashnuke/elixir.tgz
- https://github.com/gjaldon/heroku-buildpack-phoenix-static
- наш собственный пакет сборки (см. Ниже)
Наш собственный пакет сборки очень прост. Вот сценарий bin/detect
:
#!/bin/sh
exit 0
А вот сценарий bin/compile
:
#!/bin/bash
cd $1
mix release
Пока сборка работала для производства, к сожалению для PR, который Разработанный для включения приложений для обзора, он не работает, когда доходит до финального пакета сборки. Вот соответствующий результат сборки Heroku:
-----> https://github.com/orgname/buildpack-name.git app detected
** (ArgumentError) argument error
:erlang.binary_to_atom(nil, :utf8)
(stdlib) erl_eval.erl:670: :erl_eval.do_apply/6
(stdlib) erl_eval.erl:878: :erl_eval.expr_list/6
(stdlib) erl_eval.erl:236: :erl_eval.expr/5
(stdlib) erl_eval.erl:228: :erl_eval.expr/5
(stdlib) erl_eval.erl:878: :erl_eval.expr_list/6
(stdlib) erl_eval.erl:404: :erl_eval.expr/5
! Push rejected, failed to compile https://github.com/orgname/buildpack-name.git app.
! Push failed
Таким образом, похоже, что на этапе mix release
произошел сбой, но сообщение об ошибке не дает мне четкого представления о том, почему. Я нашел отчет о подобной проблеме , в котором говорится, что проблема, которую я пытаюсь решить, может быть вызвана отсутствием одной или нескольких переменных среды. Однако я дважды проверил и не обнаружил отсутствующих переменных среды.
Любые предложения о том, как я могу решить эту проблему, будут приветствоваться.