使用Elixir / Phoenix(0.10.0),如何在发布中根据PORT环境变量设置端口?

时间:2015-03-12 05:48:20

标签: elixir phoenix-framework

config/test.exs中,我有以下几行:

config :youli, Youli.Endpoint,
  http: [port: System.get_env("PORT") || 4001

当我运行mix release,解压缩版本,并使用PORT = 4242运行应用程序时,它会在端口4001上运行。稍微有点儿,我发现它在releases/0.0.3/sys.config中以这种方式进行了硬编码。

如何让我的版本与环境中的端口集一起运行?

2 个答案:

答案 0 :(得分:10)

而不是System.get_env("PORT"),请使用{:system, "PORT"}

$ git diff
diff --git a/phoenix/config/test.exs b/phoenix/config/test.exs
index 10cea91..617f34c 100644
--- a/phoenix/config/test.exs
+++ b/phoenix/config/test.exs
@@ -1,7 +1,7 @@
 use Mix.Config

  config :youli, Youli.Endpoint,
  -  http: [port: System.get_env("PORT") || 4001]
  +  http: [port: {:system, "PORT"}]

此文档位于Phoenix源代码中的lib/phoenix/endpoint.ex

答案 1 :(得分:0)

您可以使用{:system, "PORT"}System.get_env("PORT")