Thanks for the reply! I will write down the steps i took as best as possible. (please forgive me my german folder structure and logs…)
I started with a blank project using mix
:
PS E:\Projektversuche\Elixir> mix new deploytest
* creating README.md
* creating .formatter.exs
* creating .gitignore
* creating mix.exs
* creating config
* creating config/config.exs
* creating lib
* creating lib/deploytest.ex
* creating test
* creating test/test_helper.exs
* creating test/deploytest_test.exs
Your Mix project was created successfully.
You can use "mix" to compile it, test it, and more:
cd deploytest
mix test
Run "mix help" for more commands.
PS E:\Projektversuche\Elixir> cd .\deploytest\
PS E:\Projektversuche\Elixir\deploytest> code .
After opening it in VS Code i modified my application dependencies to include Distillery:
defp deps do
[
{:distillery, "~> 2.0"}
]
end
Afterwards i continued in the shell, simply following the steps described in the distillery documentation about getting your dependencies, initializing the release configuration and then building the release and running it:
PS E:\Projektversuche\Elixir\deploytest> mix do deps.get, compile
Resolving Hex dependencies...
Dependency resolution completed:
artificery 0.4.1
distillery 2.0.12
All dependencies are up to date
==> artificery
Compiling 10 files (.ex)
Generated artificery app
==> distillery
Compiling 33 files (.ex)
Generated distillery app
==> deploytest
Compiling 1 file (.ex)
Generated deploytest app
PS E:\Projektversuche\Elixir\deploytest> mix release.init
e[36m
An example config file has been placed in rel/config.exs, review it,
make edits as needed/desired, and then run `mix release` to build the releasee[0m
PS E:\Projektversuche\Elixir\deploytest> mix release
==> Assembling release..
==> Building release deploytest:0.1.0 using environment dev
==> You have set dev_mode to true, skipping archival phase
Release successfully built!
To start the release you have built, you can use one of the following tasks:
# start a shell, like 'iex -S mix'
> _build/dev/rel/deploytest/bin/deploytest.bat console
# start in the foreground, like 'mix run --no-halt'
> _build/dev/rel/deploytest/bin/deploytest.bat foreground
# start in the background, must be stopped with the 'stop' command
> _build/dev/rel/deploytest/bin/deploytest.bat start
If you started a release elsewhere, and wish to connect to it:
# connects a local shell to the running node
> _build/dev/rel/deploytest/bin/deploytest.bat remote_console
# connects directly to the running node's console
> _build/dev/rel/deploytest/bin/deploytest.bat attach
For a complete listing of commands and their use:
> _build/dev/rel/deploytest/bin/deploytest.bat help
PS E:\Projektversuche\Elixir\deploytest> .\_build\dev\rel\deploytest\bin\deploytest.bat console
Verzeichnis: E:\Projektversuche\Elixir\deploytest\_build\dev\rel\deploytest
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 05.04.2019 11:19 var
Set-Content : Es wurde kein Parameter gefunden, der dem Parameternamen "InputObject" entspricht.
In E:\Projektversuche\Elixir\deploytest\_build\dev\rel\deploytest\releases\0.1.0\deploytest.ps1:103 Zeichen:77
+ ... -path $Env:RELEASE_MUTABLE_DIR "WARNING_README") -InputObject $warnin ...
+ ~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (:) [Set-Content], ParameterBindingException
+ FullyQualifiedErrorId : NamedParameterNotFound,Microsoft.PowerShell.Commands.SetContentCommand
Verzeichnis: E:\Projektversuche\Elixir\deploytest\_build\dev\rel\deploytest\var
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 05.04.2019 11:19 log
join-path : Das Laufwerk wurde nicht gefunden. Ein Laufwerk mit dem Namen "
$bin = whereis-erts-bin
if (($bin -eq $null) -or ($bin -eq "")) {
log-error "Erlang runtime not found. If Erlang is installed, ensure it is in your PATH"
}
if (($IsWindows -eq $true) -or (($IsWindows -eq $null) -and ($env" ist nicht vorhanden.
In E:\Projektversuche\Elixir\deploytest\_build\dev\rel\deploytest\releases\0.1.0\libexec\win\erts.ps1:123 Zeichen:17
+ $erl = (join-path $bin "erl.exe")
+ ~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (
$bin = whe...ull) -and ($env:String) [Join-Path], DriveNotFoundException
+ FullyQualifiedErrorId : DriveNotFound,Microsoft.PowerShell.Commands.JoinPathCommand
Der Ausdruck nach "&" in einem Pipelineelement hat ein ungültiges Objekt erzeugt. Der Ausdruck muss einen Befehlsnamen, Skriptblock oder ein CommandInfo-Objekt ergeben.
In E:\Projektversuche\Elixir\deploytest\_build\dev\rel\deploytest\releases\0.1.0\libexec\win\erts.ps1:129 Zeichen:7
+ & "$erl" @base_args @args
+ ~~~~~~
+ CategoryInfo : InvalidOperation: (:String) [], RuntimeException
+ FullyQualifiedErrorId : BadExpression
Error occurred! Unusable Erlang runtime system! This is likely due to being compiled for another system than the host is running
join-path : Das Laufwerk wurde nicht gefunden. Ein Laufwerk mit dem Namen "
$bin = whereis-erts-bin
if (($bin -eq $null) -or ($bin -eq "")) {
log-error "Erlang runtime not found. If Erlang is installed, ensure it is in your PATH"
}
if (($IsWindows -eq $true) -or (($IsWindows -eq $null) -and ($env" ist nicht vorhanden.
In E:\Projektversuche\Elixir\deploytest\_build\dev\rel\deploytest\releases\0.1.0\libexec\win\erts.ps1:123 Zeichen:17
+ $erl = (join-path $bin "erl.exe")
+ ~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (
$bin = whe...ull) -and ($env:String) [Join-Path], DriveNotFoundException
+ FullyQualifiedErrorId : DriveNotFound,Microsoft.PowerShell.Commands.JoinPathCommand
Der Ausdruck nach "&" in einem Pipelineelement hat ein ungültiges Objekt erzeugt. Der Ausdruck muss einen Befehlsnamen, Skriptblock oder ein CommandInfo-Objekt ergeben.
In E:\Projektversuche\Elixir\deploytest\_build\dev\rel\deploytest\releases\0.1.0\libexec\win\erts.ps1:129 Zeichen:7
+ & "$erl" @base_args @args
+ ~~~~~~
+ CategoryInfo : InvalidOperation: (:String) [], RuntimeException
+ FullyQualifiedErrorId : BadExpression
join-path : Das Laufwerk wurde nicht gefunden. Ein Laufwerk mit dem Namen "
$bin = whereis-erts-bin
if (($bin -eq $null) -or ($bin -eq "")) {
log-error "Erlang runtime not found. If Erlang is installed, ensure it is in your PATH"
}
if (($IsWindows -eq $true) -or (($IsWindows -eq $null) -and ($env" ist nicht vorhanden.
In E:\Projektversuche\Elixir\deploytest\_build\dev\rel\deploytest\releases\0.1.0\libexec\commands\win\console.ps1:3 Zeichen:10
+ $werl = (join-path $bin werl)
+ ~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (
$bin = whe...ull) -and ($env:String) [Join-Path], DriveNotFoundException
+ FullyQualifiedErrorId : DriveNotFound,Microsoft.PowerShell.Commands.JoinPathCommand
HasMoreData : True
StatusMessage :
Location : localhost
Command :
start-sleep -Second 2
run-hooks -Phase post_start
JobStateInfo : Running
Finished : System.Threading.ManualResetEvent
InstanceId : 2c97935b-a350-4956-ae9c-2a5a149b49e5
Id : 1
Name : post_start hooks
ChildJobs : {Job2}
PSBeginTime : 05.04.2019 11:19:49
PSEndTime :
PSJobTypeName : BackgroundJob
Output : {}
Error : {}
Progress : {}
Verbose : {}
Debug : {}
Warning : {}
Information : {}
State : Running
Der Ausdruck nach "&" in einem Pipelineelement hat ein ungültiges Objekt erzeugt. Der Ausdruck muss einen Befehlsnamen, Skriptblock oder ein CommandInfo-Objekt ergeben.
In E:\Projektversuche\Elixir\deploytest\_build\dev\rel\deploytest\releases\0.1.0\libexec\commands\win\console.ps1:23 Zeichen:3
+ & $werl @argv
+ ~~~~~
+ CategoryInfo : InvalidOperation: (:) [], RuntimeException
+ FullyQualifiedErrorId : BadExpression
PS E:\Projektversuche\Elixir\deploytest>
Sorry for the long post, but i didn’t want to leave out any log messages that might be important…
Thanks to anyone helping!
(P.S.: Really enjoying writing Elixir, just currently struggling trying to not only run my programs via iex
…)
In case the german error messages are a problem i tried to translate them (as best as i could…):
- “Set-Content : Es wurde kein Parameter gefunden, der dem Parameternamen “InputObject” entspricht.” = No value for the parameter “InputObject” was found
- “join-path : Das Laufwerk wurde nicht gefunden. Ein Laufwerk mit dem Namen […] ist nicht vorhanden.” = The drive was not found. A drive with the name […] is not existent.
- “Der Ausdruck nach “&” in einem Pipelineelement hat ein ungültiges Objekt erzeugt. Der Ausdruck muss einen Befehlsnamen, Skriptblock oder ein CommandInfo-Objekt ergeben.” = The term after the “&” in the pipeline (?) created an invalid object. The term needs to be a command name, script block or a commandinfo-object.