使用Elixir/Phoenix(0.10.0),如何根据版本中的PORT环境变量设置端口



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中是这样硬编码的.

如何让我的版本使用环境中设置的端口运行?

代替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"}]

这方面的文档在凤凰城源代码中lib/phoenix/endpoint.ex

您可以使用

{:system, "PORT"}System.get_env("PORT")

最新更新