2017-04-25 103 views
0

我在我的VPS上使用以下命令來部署最近放在一起的應用程序。phoenix應用程序的部署問題使用gatling和酒廠部署到VPS

sudo -E mix gatling.deploy kegcopr_api 

但是,當它嘗試啓動應用程序作爲服務時,部署出錯。

$ mix release --warnings-as-errors --env=prod (/home/deploy/kegcopr_api) 
==> Assembling release.. 
==> Building release kegcopr_api:0.0.1 using environment prod 
==> Including ERTS 8.3 from /home/deploy/.asdf/installs/erlang/19.3/lib/erlang/erts-8.3 
==> Packaging release.. 
==> Release successfully built! 
    You can run it in one of the following ways: 
     Interactive: _build/prod/rel/kegcopr_api/bin/kegcopr_api console 
     Foreground: _build/prod/rel/kegcopr_api/bin/kegcopr_api foreground 
     Daemon: _build/prod/rel/kegcopr_api/bin/kegcopr_api start 
$ tar -xf kegcopr_api.tar.gz (/home/deploy/deployments/kegcopr_api) 
/etc/init.d/kegcopr_api already exists 
$ service kegcopr_api start 
** (ErlangError) erlang error: :enoent 
    (elixir) lib/system.ex:564: System.cmd("service", ["kegcopr_api", "start"], [stderr_to_stdout: true, into: %IO.Stream{device: :standard_io, line_or_bytes: :line, raw: false}]) 
    lib/gatling/tasks/deploy.ex:189: Mix.Tasks.Gatling.Deploy.start_service/1 
    lib/gatling/tasks/deploy.ex:201: Mix.Tasks.Gatling.Deploy.call/2 
    lib/gatling/tasks/deploy.ex:39: Mix.Tasks.Gatling.Deploy.deploy/1 
    (mix) lib/mix/task.ex:294: Mix.Task.run_task/3 
    (mix) lib/mix/cli.ex:58: Mix.CLI.run_task/2 

任何與此問題有關的幫助將不勝感激。

我忘了提及我通過asdf軟件包管理器使用erlang 19.3和elixir 1.4.2。

更新 刪除了文件/etc/init.d/kegcopr_api並重新運行下面的命令,

sudo -E mix gatling.deploy kegcopr_api 

現在我發現了以下錯誤消息。

$ mix release --warnings-as-errors --env=prod (/home/deploy/kegcopr_api) 
==> Assembling release.. 
==> Building release kegcopr_api:0.0.1 using environment prod 
==> Including ERTS 8.3 from /home/deploy/.asdf/installs/erlang/19.3/lib/erlang/erts-8.3 
==> Packaging release.. 
==> Release successfully built! 
    You can run it in one of the following ways: 
     Interactive: _build/prod/rel/kegcopr_api/bin/kegcopr_api console 
     Foreground: _build/prod/rel/kegcopr_api/bin/kegcopr_api foreground 
     Daemon: _build/prod/rel/kegcopr_api/bin/kegcopr_api start 
$ tar -xf kegcopr_api.tar.gz (/home/deploy/deployments/kegcopr_api) 
$ update-rc.d kegcopr_api defaults 
** (ErlangError) erlang error: :enoent 
    (elixir) lib/system.ex:564: System.cmd("update-rc.d", ["kegcopr_api", "defaults"], [stderr_to_stdout: true, into: %IO.Stream{device: :standard_io, line_or_bytes: :line, raw: false}]) 
    lib/gatling/tasks/deploy.ex:139: Mix.Tasks.Gatling.Deploy.install_init_script/1 
    lib/gatling/tasks/deploy.ex:201: Mix.Tasks.Gatling.Deploy.call/2 
    lib/gatling/tasks/deploy.ex:37: Mix.Tasks.Gatling.Deploy.deploy/1 
    (mix) lib/mix/task.ex:294: Mix.Task.run_task/3 
    (mix) lib/mix/cli.ex:58: Mix.CLI.run_task/2 
+0

你在VPS上運行什麼操作系統? – Dogbert

+0

@Dogbert我在VPS上運行Debian 7.11。 – Chris

回答

0

我通過設置運行Debian 8.7而不是7.11的Digital Ocean的液滴解決了這個問題。