我正在寻找有关如何在 Windows 上部署和运行 elixir/phoenix 程序的建议。
我使用过 Distillery,但它可以与 . 一起使用mix release
,但没有可用于命令提示符的命令。每个建议的命令,例如
_build/dev.../<program> console
产生错误not a recognized internal or external command
。
但是,我也使用exrm
过,即使在修改.bat
文件以删除路径中不需要的文件后,它也会在 erlang 转储文件中//
产生错误。kernel PID terminated
版本:
- 灵药:1.4.2
- 二郎:19.2 [erts-8.2]
- Exrm: 1.0.3
.bat 的编辑是:
<app>/rel/<app>/releases/version/app.bat and
<app>/rel/<app>/bin/app.bat
这是因为它试图执行:
<app>/rel/<app>/releases//app.bat
而不是上面的。(修复在这里找到)
这有效,程序执行但抛出错误:
内核 PID 终止(应用程序控制器)无法启动子“elixir.helloworld.endpoint”
感谢您到目前为止的帮助,很抱歉,因为这是我第一次做这部分。
注意:带有exrm
程序的 Windows 10 正常运行mix phoenix.server
有没有人一步一步地在 Windows 上启动 elixir 程序或服务?
编辑:在以下期间收到警告mix release
:
variable deps does not exist and is being expanded to deps()
在尝试开始时:
failed to open file <app>/rel/<app>releases/version/conform
编辑<app>/rel/<app>/bin/app.bat
:
添加""
到%start_erl%
@set start_erl=%release_root_dir%\releases\start_erl.data
@for /f "delims=" %%i in ('type "%start_erl%"') do
@(set start_erl_data=%%i)
编辑<app>/rel/<app>/releases/version/app.bat
:
添加""
到%start_erl%
:: Discover the release root directory from the directory of this script
@set script_dir=%~dp0
@for %%A in ("%script_dir%\..\..") do @(set release_root_dir=%%~fA)
@set start_erl=%release_root_dir%\releases\start_erl.data
@for /f "delims=" %%i in ('type "%start_erl%"') do
@(set start_erl_data=%%i)
添加""
到%werl%
:: Start a console
:console
@call :generate_config
@start "%rel_name% console" "%werl%" -config "%sys_config%" ^
-boot "%boot_script%" -boot_var ERTS_LIB_DIR "%erts_dir%"/lib ^
-env ERL_LIBS "%release_root_dir%"/lib ^
-pa "%release_root_dir%"/lib "%release_root_dir%"/lib/consolidated ^
-args_file "%vm_args%" ^
-user Elixir.IEx.CLI -extra --no-halt +iex