archimondain

archimondain

I would like to be able to call functions from my Elixir code while the whole Cowboy/Phoenix machinery is running. For some reason when I’m not on production everything works fine with iex -S mix. But on production I get

[error] Failed to start Ranch listener SyntaxWeb.Endpoint.HTTP in :ranch_tcp:listen([{:cacerts, :...}, {:key, :...}, {:cert, :...}, :inet6, {:port, 80}]) for reason :eaddrinuse (address already in use)

I’m not sure of what the problem is. From the error message, it seems that iex -S mix tries to listen port 80, while Cowboy is already listening to it. On the other hand it seems odd for the iex -S mix command to try running a server, does’n it ?

My question is : what is really happening ? and how can I load my project modules and run some elixir code in command line while a server is running on the machine ?

Showing Posts 1 to 5

hauleth

hauleth

If this is Phoenix application, and you have:

config :phoenix, serve_endpoints: true

In your production configuration, then application will try to start application, and by extension - start listening -on application launch. And iex -S mix is the same as iex -S mix run, and mix help run returns:

                                    mix run

Starts the current application and runs code.

mix run can be used to start the current application dependencies, the
application itself, and optionally run some code in its context. For long
running systems, this is typically done with the --no-halt option:

    mix run --no-halt

Which mean it starts application which will fail due to trying to reuse listening port.

archimondain

archimondain OP

But I do not have the line

config :phoenix, :serve_endpoints, true

neither in prod nor in dev. It is the same problem when I explicitly set server: false in the configuration file

archimondain

archimondain OP

I have no idea why the server does not start in my Dev env. I also don’t understand why putting server: false in the endpoint configuration keys seems to have no effect. I finally created another configuration which is the same than the production one, except that it does not start the endpoint (but it starts the Repo thing). This is configurable in the application.ex file.

yurko

yurko

Are you using releases? The server option has to do with them, otherwise if you are running the production system with mix it’s just your mix config.

If you are using releases and want to do something with the running system, check out the remote console: mix release — Mix v1.20.2

archimondain

archimondain OP

Good call. I am using releases :slight_smile:, so that must be it.
I will check the link you provide

Thanks

— All posts loaded —

Where Next? Top

Trending in Questions Top

RSP87
I’m working on a project that simulates the bumbl example in the programming phoenix book. It acts almost like an email client. We have a...
New
nseaSeb
Hello, I know there is an approach for handling lists that allows for optimized traversal, but I can’t recall the specific method (somet...
New
RemyXRenard
I’m seeing that a list inside a Kino.DataTable will be interpreted as a charlist, even if the Kino.configure() is set to charlists: :as_l...
New
velrest
So my question is quite simple and i have found no conclusive answer on forum, google or AI. Should we use :erlang.float for Integer to ...
New
brecabral
Documentation While reading the Scoped Routes section, I noticed that the documentation currently refers to a problem without explainin...
New
samoloth
Hi, I’ve just set up an application with ash_authentication. There is only magic link strategy for now, so there is no confirmation add o...
New
FlyingNoodle
If a change or preparation module uses Ash.Changeset.get_argument/2 or Ash.Query.get_argument/2 (or any of the other get_argument functio...
New

Other Trending Topics Top

mudasobwa
I am happy to introduce the very α version of the new programming language compiled to BEAM. Welcome Cure. It has literally three kille...
New
marciok
Hi there! We created Gust: A task orchestrator inspired by Airflow. For those who have never heard about Aiflow, it’s a Python-based wor...
New
jimsynz
Beam Bots (or just BB for short) is a framework for building fault-tolerant robotics applications in Elixir using familiar OTP patterns. ...
New
Dmk
Xamal is a deployment tool for Elixir apps that deploys native releases to bare metal servers over SSH. It’s a port of GitHub - basecamp/...
New
netoum
Corex is an accessible, unstyled UI component library for Phoenix that integrates Zag.js state machines using Vanilla JavaScript and Live...
New
webofbits
With AI doing more of the implementation work, I’ve been wondering how much coding I should deliberately keep doing myself. My main conc...
#ai
New

We're in Beta

About us Mission Statement

Options

Thread Display Mode




Thread Preview

Skip Thread Previews