zatae

zatae

Phoenix dev mode Google Cloud Run

Is this possible to deploy a Phoenix application to Google Cloud Run with MIX_ENV=dev ? For some reasons when I try deploy in dev mode, it just crash when the application starts.

Since Cloud Run is using gVisor, could this be possible that Phoenix is making some system calls that gVisor would consider as dangerous and just kill the process?

Marked As Solved

timothy

timothy

So I did some testing and it appears Google Cloud kills the application because the healthcheck fails. It test if the application is reachable on the given port. Since Phoenix runs on 127.0.0.1 in dev environment it isn’t available. So changing the ip configuration in config/dev.exs fixed the issue for me.

config :phoenix_cloud_run, PhoenixCloudRunWeb.Endpoint,
  # Binding to loopback ipv4 address prevents access from other machines.
  # Change to `ip: {0, 0, 0, 0}` to allow access from other machines.
- http: [ip: {127, 0, 0, 1}, port: 4000],
+ http: [ip: {0, 0, 0, 0}, port: 4000],

Also Liked

timothy

timothy

Which “execution environment” are you using? The second generation, which is still in preview though, might fix these system calls. This is what we are currently using.

According to the docs:

The second generation execution environment provides full Linux compatibility rather than system call emulation.

timothy

timothy

I tested with both first-and second generation.

Did you change the port configuration on Cloud Run too? By default Cloud Run uses 8080 but Phoenix uses 4000 in dev environment.

zatae

zatae

That was it, totally forgot about that! Thank you very much for your help.

Last Post!

zatae

zatae

That was it, totally forgot about that! Thank you very much for your help.

Where Next?

Popular in Questions Top

hariharasudhan94
I would like to know what is the best IDE for elixir development?
New
hariharasudhan94
lets say i have a sample like a = 20; b = 10; if (a > b) do {:ok, "a"} end if (a < b) do {:ok, b} end if (a == b) do {:ok, "equa...
New
dokuzbir
I want to highlight html closing tags when i click a html tag. That works in .html files but doesnt work for html.eex templates. How can...
New
jay1
Why is it that the mnesia database isn’t the most preferred database for use in Elixir/Phoenix?
New
9mm
I am constructing a JSON object (map) and I need to conditionally set a field. I’m trying to write proper elixir-way code… and I’m at a l...
New
gshaw
What is the idiomatic way of matching for not nil in Elixir? E.g., First way: defp halt_if_not_signed_in(conn, signed_in_account) when...
New
sergio_101
I am VERY much an elixir newbie. I have taken one elixir course and one phoenix course on Udemy. During that course, I saw the instructor...
New

Other popular topics Top

rms.mrcs
Hi, I need to transform a list of numbers into a map where the keys are the indexes and the values are the original values of the list. ...
New
joaquinalcerro
Hi there, I am working with Ecto-Postgresql and I need to call all of the records from a specific table but the table has 40,000 records...
New
hariharasudhan94
I would like to know what is the best IDE for elixir development?
New
ashish173
I am using Ecto timestamps with postgres, I can see the timestamps() use the :naive_dateime but for my use case I wanted to store the ti...
New
axelson
This post is a wiki (feel free to hit the edit button near the bottom right of this post to add your own changes!) This post collects co...
239 49134 226
New
AngeloChecked
What learn first? Rust or Elixir Hi Elixir community! I’m here because i want learn a new language. I’m a junior developer and mainly i ...
New

We're in Beta

About us Mission Statement