【问题标题】:Running Elixir app on Windows: Can't set short node name在 Windows 上运行 Elixir 应用程序:无法设置短节点名称
【发布时间】:2020-05-24 17:39:33
【问题描述】:

我使用 mix release 构建了一个 Elixir 应用程序,当我使用 .\_build\prod\rel\prod\bin\prod start 运行它时,我收到以下错误:

2020-02-08 19:57:52.981000
    args: []
    format: "Can't set short node name!\nPlease check your configuration\n"
    label: {error_logger,info_msg}

我查看了 fsutil 并更改了我的计算机名称 (Windows 10),但没有任何帮助。

我也尝试了@aleksei 提到的但没有运气:

.\_build\prod\rel\prod\bin\prod start --sname zpc

我的 mix.exs 有以下内容:

  def project do
    [
      app: :km,
      releases: [
        prod: [
          include_executables_for: [:unix, :windows],
          steps: [:assemble, :tar]
        ]
      ],
      version: "0.1.0",
      elixir: "~> 1.9",
      start_permanent: Mix.env() == :prod,
      deps: deps()
    ]
  end

env.bat.eex 有以下内容:

@echo off
rem Set the release to work across nodes. If using the long name format like
rem the one below (my_app@127.0.0.1), you need to also uncomment the
rem RELEASE_DISTRIBUTION variable below.
rem set RELEASE_DISTRIBUTION=km
set RELEASE_NODE=<%= @release.name %>@127.0.0.1

【问题讨论】:

  • 根据上述情况很难判断出什么问题。显式节点名称设置是否有效.\_build\prod\rel\prod\bin\prod --sname my_short_name start
  • 不,我得到了同样的错误。我还在帖子中添加了更多信息。
  • 把env.bat.eex最后一行注释掉。
  • 谢谢,成功了!如果你让它回答,我会接受。

标签: elixir elixir-mix


【解决方案1】:

env.bat.eex 的默认模板配置为与跨节点的版本一起使用,并且取决于要设置的 @release.name 模块变量。

要使用短节点名称运行版本,只需注释 env.bat.eex 中的所有内容:

@echo off
rem Set the release to work across nodes.
rem If using the long name format like
rem   the one below (my_app@127.0.0.1),
rem   you need to also uncomment the
rem   RELEASE_DISTRIBUTION variable below.
rem
rem set RELEASE_DISTRIBUTION=km
rem set RELEASE_NODE=<%= @release.name %>@127.0.0.1

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-24
    • 1970-01-01
    • 2014-05-05
    相关资源
    最近更新 更多