Deployment always fails and container logs are not printed

Hello Fly team!

I’m experimenting and learning about Fly and I’m attempting to deploy an Elixir/Phoenix app (more complex than a simple example app). I’m building a Docker image with the usual Mix release flow and I’ve also managed to have the release running in a local Docker instance.

My deployments always fail and I can’t figure out why. Probably some misconfiguration or some detail I’m missing on the live environment. However, logs never show the actual application or container logs and this is making it pretty much impossible to determine the root cause of these issues.

These are the deployment logs, VM status and fly.toml (app and module names omitted for privacy reasons):

Deployment logs
2022-04-05T16:14:45Z   [info]Preparing to run: `bin/<my_app> eval <MyApp>Server.Release.migrate() bin/<my_app> start` as nobody
2022-04-05T16:14:45Z   [info]2022/04/05 16:14:45 listening on [fdaa:0:5467:a7b:2656:9ef1:c108:2]:22 (DNS: [fdaa::3]:53)
2022-04-05T16:14:47Z   [info]Starting release migrations...
2022-04-05T16:14:47Z   [info]Running migrations for repo <MyApp>Server.Queue.Repo
2022-04-05T16:14:47Z   [info]Running migrations for repo <MyApp>.<MyModule>.Repo
2022-04-05T16:14:47Z   [info][info] [erl_level=info application=ecto_sql domain=elixir file=lib/ecto/migrator.ex function=log/2 line=708 mfa=Ecto.Migrator.log/2 module=Ecto.Migrator pid=<0.95.0> ] Migrations already up
2022-04-05T16:14:47Z   [info][info] [erl_level=info application=ecto_sql domain=elixir file=lib/ecto/migrator.ex function=log/2 line=708 mfa=Ecto.Migrator.log/2 module=Ecto.Migrator pid=<0.95.0> ] Migrations already up
2022-04-05T16:14:47Z   [info]Done
2022-04-05T16:14:47Z   [info]Main child exited normally with code: 0
2022-04-05T16:14:47Z   [info]Reaped child process with pid: 562 and signal: SIGUSR1, core dumped? false
2022-04-05T16:14:47Z   [info]Starting clean up.
--> v40 failed - Failed due to unhealthy allocations - rolling back to job version 39 and deploying as v41

--> Troubleshooting guide at https://fly.io/docs/getting-started/troubleshooting/
Error abort
VM status logs
Instance
  ID            = 93a99fa4
  Process       =
  Version       = 42
  Region        = mad
  Desired       = stop
  Status        = failed
  Health Checks = 1 total, 1 critical
  Restarts      = 2
  Created       = 8m6s ago

Recent Events
TIMESTAMP            TYPE           MESSAGE
2022-04-05T16:24:03Z Received       Task received by client
2022-04-05T16:24:03Z Task Setup     Building Task Directory
2022-04-05T16:24:11Z Started        Task started by client
2022-04-05T16:24:15Z Terminated     Exit Code: 0
2022-04-05T16:24:15Z Restarting     Task restarting in 1.192250481s
2022-04-05T16:24:22Z Started        Task started by client
2022-04-05T16:24:26Z Terminated     Exit Code: 0
2022-04-05T16:24:26Z Restarting     Task restarting in 1.017804191s
2022-04-05T16:24:33Z Started        Task started by client
2022-04-05T16:24:37Z Terminated     Exit Code: 0
2022-04-05T16:24:37Z Not Restarting Exceeded allowed attempts 2 in interval 5m0s and mode is "fail"
2022-04-05T16:24:38Z Killing        Sent interrupt. Waiting 5s before force killing

Checks
ID                               SERVICE  STATE    OUTPUT
29f781710b9ea2332624cf1966c0c544 tcp-8080 critical dial tcp 172.19.2.130:8080: connect: connection refused

Recent Logs
fly.toml
app = "<my_app>"

kill_signal = "SIGINT"
kill_timeout = 5

[build]
  dockerfile = "build/Dockerfile"

[env]
  <REDACTED>

[deploy]
  release_command = "/app/bin/<my_app> eval <MyApp>Server.Release.migrate()"

[experimental]
  allowed_public_ports = []
  auto_rollback = true

[[services]]
  internal_port = 8080
  protocol = "tcp"

  [services.concurrency]
    hard_limit = 25
    soft_limit = 20

  [[services.ports]]
    # force_https = true
    handlers = ["http"]
    port = 80

  [[services.ports]]
    handlers = ["tls", "http"]
    port = 443

  [[services.tcp_checks]]
    grace_period = "300s"
    interval = "15s"
    restart_limit = 6
    timeout = "15s"

I’m not sure where the problem may be, although my main cause for being blocked is the lack of app logs. The health checks I’ve tried (both TCP, HTTP and HTTPS) all fail, but this looks like it’s because the app never fully executes. Furthermore, I’ve tinkered around with the VM memory, but the metrics never show memory usage over 40MB so the lowest 256MB should suffice. Another approach I attempted was to simplify the configuration following the Fly deployment guide on the official Phoenix documentation.

Any help with this would be appreciated :slightly_smiling_face:

1 Like

Can you confirm that your env has something like this?

[env]
  PHX_HOST = "YOUR_APP.fly.dev"
  PORT = "8080"

I can see that your fly.toml has this

[[services]]
  internal_port = 8080

So it expects elixir to be running on 8080 so if you used our fly launch you would have a runtime.exs like this:

  host = System.get_env("PHX_HOST") || "example.com"
  port = String.to_integer(System.get_env("PORT") || "4000")

  config :your_app_name, YourAppWeb.Endpoint,
    url: [host: host, port: 443],
    http: [
      # Enable IPv6 and bind on all interfaces.
      # Set it to  {0, 0, 0, 0, 0, 0, 0, 1} for local network only access.
      # See the documentation on https://hexdocs.pm/plug_cowboy/Plug.Cowboy.html
      # for details about using IPv6 vs IPv4 and loopback vs public addresses.
      ip: {0, 0, 0, 0, 0, 0, 0, 0},
      port: port
    ],
    secret_key_base: secret_key_base

The important bit is System.get_env("PORT") because if there’s no port set on envs you would be using 4000 but your fly.toml expects 8080 for health checks.

@lubien thank you for your reply but still not deploying. The deployment logs look the same.

However, the VM status is now different since it says warning instead of critical. Here’s the VM status:

[1] % fly vm status 15ce304e
Instance
  ID            = 15ce304e
  Process       =
  Version       = 43
  Region        = ewr
  Desired       = stop
  Status        = failed
  Health Checks = 1 total
  Restarts      = 2
  Created       = 1m36s ago

Recent Events
TIMESTAMP            TYPE            MESSAGE
2022-04-05T17:18:52Z Received        Task received by client
2022-04-05T17:18:52Z Task Setup      Building Task Directory
2022-04-05T17:18:56Z Started         Task started by client
2022-04-05T17:19:02Z Terminated      Exit Code: 0
2022-04-05T17:19:02Z Restarting      Task restarting in 1.020074688s
2022-04-05T17:19:10Z Started         Task started by client
2022-04-05T17:19:16Z Terminated      Exit Code: 0
2022-04-05T17:19:16Z Restarting      Task restarting in 1.041241465s
2022-04-05T17:19:23Z Started         Task started by client
2022-04-05T17:19:31Z Terminated      Exit Code: 0
2022-04-05T17:19:31Z Not Restarting  Exceeded allowed attempts 2 in interval 5m0s and mode is "fail"
2022-04-05T17:19:31Z Alloc Unhealthy Unhealthy because of failed task
2022-04-05T17:19:31Z Killing         Sent interrupt. Waiting 5s before force killing

Checks
ID                               SERVICE  STATE   OUTPUT
29f781710b9ea2332624cf1966c0c544 tcp-8080 warning

Recent Logs

Do you need my complete Phoenix configs?

Thank you for your time!

Was your Dockerfile generated by fly launch (or by running mix phx.gen.release --docker yourself, or did you bring in your Dockerfile on your own? Can you share your Dockerfile and pruned config/runtime.exs? Thanks!

Hello Chris! The Dockerfile was created by myself but following the example on on the official Phoenix docs.

Some further details about the app:

  • This is an umbrella app with 6 sub-apps (the server sub-app is the one running Phoenix)
  • There’s one sub-app which uses telemetry_metrics_prometheus to expose Prometheus metrics over an endpoint on port 9568. Could this deployment be failing because I need to expose this port somehow on the fly.toml?
  • Another sub-app compiles and executes NIFs, but from my experiments on local Docker this seems to be working correctly AFAIK
  • At this point I’m not adding the digested frontend static assets. I’m not sure if that causes any issue when Phoenix starts executing (locally it did not matter it seems)
Dockerfile with app names redacted

FROM elixir:1.11 AS build_image

ENV APP_HOME /app
ENV MIX_ENV prod
ENV ROOT_SRC ../backend/server
ENV ELM_VERSION="0.19.1"

RUN set -xe \
  && echo "deb http://deb.debian.org/debian stable non-free contrib main" | tee -a /etc/apt/sources.list.d/pgdg.list \
	&& buildDeps=' \
    build-essential \
		ca-certificates \
		curl \
    erlang-dev \
    libgit2-dev \
		make \
	' \
	&& apt-get update \
	&& apt-get install -y --no-install-recommends $buildDeps \
  && apt-get clean \
  && rm -f /var/lib/apt/lists/*_* \
  && curl -L -o elm.gz https://github.com/elm/compiler/releases/download/${ELM_VERSION}/binary-for-linux-64-bit.gz \
  && gunzip elm.gz \
  && chmod +x elm \
  && mv elm /usr/local/bin/

RUN mkdir $APP_HOME

WORKDIR $APP_HOME

RUN /usr/local/bin/mix local.hex --force && \
    /usr/local/bin/mix local.rebar --force

# copy mix.exs and mix.lock
COPY $ROOT_SRC/mix.* $APP_HOME/
COPY $ROOT_SRC/apps/<my_app>_server/mix.* $APP_HOME/apps/<my_app>_server/
COPY $ROOT_SRC/apps/<my_app>_<app_1>/mix.* $APP_HOME/apps/<my_app>_<app_1>/
COPY $ROOT_SRC/apps/<my_app>_<app_2>/mix.* $APP_HOME/apps/<my_app>_<app_2>/
COPY $ROOT_SRC/apps/<my_app>_<app_3>/mix.* $APP_HOME/apps/<my_app>_<app_3>/
COPY $ROOT_SRC/apps/<my_app>_<app_4>/mix.* $APP_HOME/apps/<my_app>_<app_4>/
COPY $ROOT_SRC/apps/<app_5>/mix.* $APP_HOME/apps/<app_5>/
COPY $ROOT_SRC/apps/<app_6>/mix.* $APP_HOME/apps/<app_6>/

# fetch dependencies for prod
RUN mix deps.get --only $MIX_ENV

# copy config.exs and prod.exs from each app when applicable

## root
COPY $ROOT_SRC/config/config.exs $APP_HOME/config/
COPY $ROOT_SRC/config/${MIX_ENV}.exs $APP_HOME/config/

## :<my_app>_server
COPY $ROOT_SRC/apps/<my_app>_server/config/config.exs $APP_HOME/apps/<my_app>_server/config/
COPY $ROOT_SRC/apps/<my_app>_server/config/${MIX_ENV}.exs $APP_HOME/apps/<my_app>_server/config/

## :<my_app>_<app_2>
COPY $ROOT_SRC/apps/<my_app>_<app_2>/config/config.exs $APP_HOME/apps/<my_app>_<app_2>/config/
COPY $ROOT_SRC/apps/<my_app>_<app_2>/config/${MIX_ENV}.exs $APP_HOME/apps/<my_app>_<app_2>/config/

## :<my_app>_<app_3>
COPY $ROOT_SRC/apps/<my_app>_<app_3>/config/config.exs $APP_HOME/apps/<my_app>_<app_3>/config/
COPY $ROOT_SRC/apps/<my_app>_<app_3>/config/${MIX_ENV}.exs $APP_HOME/apps/<my_app>_<app_3>/config/

## :<my_app>_<app_4>
COPY $ROOT_SRC/apps/<my_app>_<app_4>/config/config.exs $APP_HOME/apps/<my_app>_<app_4>/config/
COPY $ROOT_SRC/apps/<my_app>_<app_4>/config/${MIX_ENV}.exs $APP_HOME/apps/<my_app>_<app_4>/config/

# compile dependencies only
RUN mix deps.compile

# required due the custom MIME type application/<my_app>-erlang
RUN mix deps.clean mime --build

# copy repo migrations and static assets
COPY $ROOT_SRC/apps/<my_app>_server/priv $APP_HOME/apps/<my_app>_server/priv/
COPY $ROOT_SRC/apps/<my_app>_<app_2>/priv $APP_HOME/apps/<my_app>_<app_2>/priv/

# copy app sources

## :<my_app>_server
COPY $ROOT_SRC/apps/<my_app>_server/lib $APP_HOME/apps/<my_app>_server/lib/

## :<my_app>_<app_2>
COPY $ROOT_SRC/apps/<my_app>_<app_2>/lib $APP_HOME/apps/<my_app>_<app_2>/lib/

## :<my_app>_<app_3>
COPY $ROOT_SRC/apps/<my_app>_<app_3>/lib $APP_HOME/apps/<my_app>_<app_3>/lib/

## :<my_app>_<app_1>
COPY $ROOT_SRC/apps/<my_app>_<app_1>/lib $APP_HOME/apps/<my_app>_<app_1>/lib/
COPY $ROOT_SRC/apps/<my_app>_<app_1>/c_src $APP_HOME/apps/<my_app>_<app_1>/c_src/
COPY $ROOT_SRC/apps/<my_app>_<app_1>/Makefile $APP_HOME/apps/<my_app>_<app_1>/Makefile

## :<my_app>_<app_4>
COPY $ROOT_SRC/apps/<my_app>_<app_4>/lib $APP_HOME/apps/<my_app>_<app_4>/lib/

## :<app_5>
COPY $ROOT_SRC/apps/<app_5>/lib $APP_HOME/apps/<app_5>/lib/

## :<app_6>
COPY $ROOT_SRC/apps/<app_6>/lib $APP_HOME/apps/<app_6>/lib/

RUN mix compile

# copy runtime configurations

## root
COPY $ROOT_SRC/config/runtime.exs $APP_HOME/config/

## :<my_app>_server
COPY $ROOT_SRC/apps/<my_app>_server/config/runtime.exs $APP_HOME/apps/<my_app>_server/config/

## :<my_app>_<app_2>
COPY $ROOT_SRC/apps/<my_app>_<app_2>/config/runtime.exs $APP_HOME/apps/<my_app>_<app_2>/config/

# generate release
COPY $ROOT_SRC/rel $APP_HOME/
RUN mix release <my_app>

##########################################################################

FROM debian:bullseye-slim AS run_image

RUN set -xe \
  && echo "deb http://deb.debian.org/debian stable non-free contrib main" | tee -a /etc/apt/sources.list.d/pgdg.list \
  && buildDeps=' \
    libgit2-1.1 \
    libstdc++6 \
    libncurses5 \
    locales \
    openssl \
  ' \
  && apt-get update \
  && apt-get install -y --no-install-recommends $buildDeps \
  && apt-get clean \
  && rm -f /var/lib/apt/lists/*_*

# Set the locale
RUN sed -i '/en_US.UTF-8/s/^# //g' /etc/locale.gen && locale-gen

ENV LANG en_US.UTF-8
ENV LANGUAGE en_US:en
ENV LC_ALL en_US.UTF-8

WORKDIR /app

RUN chown nobody .

# only copy the final release
COPY --from=BUILD_IMAGE --chown=nobody:root /app/_build/prod/rel/<my_app> .

USER nobody

ENTRYPOINT ["bin/<my_app>", "eval", "<my_app>Server.Release.migrate()"]

CMD ["bin/<my_app>", "start"]
config/runtime.exs (this is the runtime.exs from the umbrella's root)
import Config

import Utils.System

if config_env() == :prod do
  secret_key_base =
    System.get_env("<MY_APP>_SECRET_KEY_BASE") ||
      raise """
      environment variable <MYAPP>_SECRET_KEY_BASE is missing.
      You can generate one by calling: mix phx.gen.secret
      """

  host =
    System.get_env("PHX_HOST") ||
      raise "PHX_HOST not available"

  config :<my_app>_server, <MyApp>ServerWeb.Endpoint,
    server: true,
    url: [host: host, port: 443],
    http: [
      # Enable IPv6 and bind on all interfaces.
      # Set it to  {0, 0, 0, 0, 0, 0, 0, 1} for local network only access.
      # See the documentation on https://hexdocs.pm/plug_cowboy/Plug.Cowboy.html
      # for details about using IPv6 vs IPv4 and loopback vs public addresses.
      ip: {0, 0, 0, 0, 0, 0, 0, 0},
      port: fetch_env_var("<MY_APP>_SERVER_PORT", :integer)
    ],
    secret_key_base: secret_key_base

  database_url =
    System.get_env("DATABASE_URL") ||
      raise """
      environment variable DATABASE_URL is missing.
      For example: ecto://USER:PASS@HOST/DATABASE
      """

  config :<my_app>_server, <MY_APP>Server.Queue.Repo,
    url: database_url,
    # IMPORTANT: Or it won't find the DB server
    socket_options: [:inet6]

  config :<my_app>_<my_app3>, <MY_APP><APP_3>.Repo,
    url: database_url,
    # IMPORTANT: Or it won't find the DB server
    socket_options: [:inet6]
end

config :<my_app>_server, <MY_APP>Server.Queue.Repo,
  database: fetch_env_var("<MY_APP>_DATABASE_NAME", :string),
  username: fetch_env_var("<MY_APP>_DATABASE_USER", :string),
  password: fetch_env_var("<MY_APP>_DATABASE_PASS", :string),
  hostname: fetch_env_var("<MY_APP>_DATABASE_HOST", :string),
  port: fetch_env_var("<MY_APP>_DATABASE_PORT", :integer),
  pool_size: fetch_env_var("<MY_APP>_DATABASE_POOL_SIZE", :integer)

config :<my_app>_<app_3>, <MY_APP><APP_3>.Repo,
  database: fetch_env_var("<MY_APP>_DATABASE_NAME", :string),
  username: fetch_env_var("<MY_APP>_DATABASE_USER", :string),
  password: fetch_env_var("<MY_APP>_DATABASE_PASS", :string),
  hostname: fetch_env_var("<MY_APP>_DATABASE_HOST", :string),
  port: fetch_env_var("<MY_APP>_DATABASE_PORT", :integer),
  pool_size: fetch_env_var("<MY_APP>_DATABASE_POOL_SIZE", :integer)

# :libcluster is commented and I'm using the `LocalEpmd` strategy from `config/config.exs` since I don't want to deal with clustering yet
#config :libcluster,
  #topologies: [
    #fly6pn: [
      #strategy: Cluster.Strategy.DNSPoll,
      #config: [
        #polling_interval: 5_000,
        #query: "#{app_name}.internal",
        #node_basename: app_name
      #]
    #]
  #]

The migrations have also run correctly and I confirmed via the fly postgres console.

Thank you for your help!

EDIT: I tried setting the port for the Prometheus telemetry app like so:

  [[services.ports]]
    # force_https = true
    handlers = ["http"]
    port = 10068

which per the Fly docs should be an available port. However, the deployment still fails the same way.

SECOND EDIT: I’ve added the necessary steps in the Dockerfile to compile and digest the static assets and added to the server sub-app priv/static as expected in Phoenix apps. So far no changes to the deployment.

THIRD EDIT: By the Port Checking docs I added EXPOSE 8080 10068 to the bottom of Dockerfile but still nothing.

Hi @sashaafm!

Just looking over your runtime, I don’t see any obvious problems. I was wondering about the use of Elixir 1.11 in the Dockerfile and wanted to ensure that this is intentional. If not, I could see that causing problems.

Also, regarding the Dockerfile…

When it runs on Fly, it’s not actually running Docker. It converts the Docker image into Firecracker VM. So the ENTRYPOINT and CMD thing might not work right.

Migrations are best run from the fly.toml file.

It seems like there’s a bug with our API that’s not returning any logs for a VM. We’re looking into it.

In the meantime, you can run flyctl logs in another terminal session (or https://fly.io/apps/<name>/logs in the browser) while deploying to see if anything stands out.

Sorry for slowing you down!

I think I’m running into a similar issue - here are the logs from a fly launch:

2022-04-07T02:12:33Z app[0b948998] sea [info]Preparing to run: `/bin/sh -c /app/bin/server` as nobody
2022-04-07T02:12:33Z app[0b948998] sea [info]2022/04/07 02:12:33 listening on [fdaa:0:4dc2:a7b:2c60:b94:8998:2]:22 (DNS: [fdaa::3]:53)
2022-04-07T02:12:33Z runner[0b948998] sea [info]Virtual machine started successfully
2022-04-07T02:12:34Z app[0b948998] sea [info]Reaped child process with pid: 555, exit code: 0
2022-04-07T02:12:36Z app[0b948998] sea [info]Reaped child process with pid: 576 and signal: SIGUSR1, core dumped? false
2022-04-07T02:13:35Z runner[0b948998] sea [info]Shutting down virtual machine
2022-04-07T02:13:35Z app[0b948998] sea [info]Sending signal SIGTERM to main child process w/ PID 515
2022-04-07T02:13:36Z app[0b948998] sea [info]Stin child exited with signal (with signal 'SIGTERM', core dumped? false)
2022-04-07T02:13:36Z app[0b948998] sea [info]Starting clean up.

Also a near clone of the mix phx.gen.release --docker setup with some of the small path and Dockerfile adjustments for an umbrella project. The release’s migrate command is working as intended, but seems to fail at /app/bin/server.

Hi @zblanco! Good to see you here! (We know each other from a local meetup.)

Are the migrations being run from the fly.toml file step?

The most common problem I see is runtime.exs config. Because all the “prod” config doesn’t happen locally during dev so any issues there aren’t seen until the project is deployed.

Does the mix release command work locally? Just that it builds without errors, etc.

1 Like

Might be worth checking the Dockerfile. The “server” is a shell script or a symlink (can’t remember) and if any path changes caused that to no longer line up as anticipated the that could be related.

Hello all :wave:

I’ve finally managed to properly deploy my app on Fly! After speaking with Chris I pruned and tidied up my configs, but that still wasn’t cutting it.

It looks like the issue was what @brainlid warned about. After removing the ENTRYPOINT and CMD from the Dockerfile and leaving the deploy.release_command and adding an extra experimental.cmd in the fly.toml the app went live :tada:

So thanks for all the effort @chrismccord @brainlid @lubien @michael ! It would be great if this info could be added to the Dockerfile docs (I may open a PR for this).

Looking forward to keep further exploring and working with Fly.io!

@zblanco if you are using a Dockerfile please check if you are running into the same issue as I did.

4 Likes

I’ve opened a PR to warn about this issue :slightly_smiling_face:

1 Like

Just chiming in here as I saw the PR come in on the docs.

ENTRYPOINT and CMD work on Fly as they would with Docker. The issue here may be that CMD is prefixed by ENTRYPOINT per Dockerfile rules.

Apart from that, migrations should always be handled in a release_command because if you run them at boot, every VM will try to run migrations. Usually, you want migrations run once, and you want a failed migration to abort deployment. Release commands offer this behavior by running on an ephemeral VM before a full deployment of your image.

All this said, we should make these distinctions clearer in our docs!

2 Likes

Hello Fly team!

My deployments also always fail. I’ve created a new phoenix app and called fly launch. The dockerfile and fly.toml was generated by fly. The deployment breaks due to the release command /app/bin/migrate as the log is shown:

You can detach the terminal anytime without stopping the deployment
==> Release command
Command: /app/bin/migrate
         Starting instance
         Configuring virtual machine
         Pulling container image
         Unpacking image
         Preparing kernel init
         Error: UnhandledIoError(Os { code: 2, kind: NotFound, message: "No such file or directory" })
         [    0.093026] Kernel panic - not syncing: Attempted to kill init! exitcode=0x00000100
         [    0.093823] CPU: 0 PID: 1 Comm: init Not tainted 5.12.2 #1
         [    0.094426] Call Trace:
         [    0.094713]  show_stack+0x52/0x58
         [    0.095094]  dump_stack+0x6b/0x86
         [    0.095469]  panic+0xfb/0x2bc
         [    0.095793]  do_exit.cold+0x60/0xb0
         [    0.097180]  do_syscall_64+0x38/0x50
         [    0.097769]  entry_SYSCALL_64_after_hwframe+0x44/0xae
         [    0.099062] RIP: 0033:0x6fea55
         [    0.099042] Code: eb ef 48 8b 76 28 e9 76 05 00 00 64 48 8b 04 25 00 00 00 00 48 8b b0 b0 00 00 00 e9 af ff ff ff 48 63 ff b8 e7 00 00 00 0f 05 <ba> 3c 00 00 00 48 89 d0 0f 05 eb f9 66 2e 0f 1f 84 00 00 00 00 00
         [    0.101733] RSP: 002b:00007fffda0fe6f8 EFLAGS: 00000246 ORIG_RAX: 00000000000000e7
         [    0.102755] RAX: ffffffffffffffda RBX: 00000000005d0250 RCX: 00000000006fea55
         [    0.104288] RBP: 0000000000000001 R08: 0000000000000000 R09: 0000000000000000
         [    0.104843] R10: 0000000000000000 R11: 0000000000000246 R12: 00007fffda0fe758
         [    0.105397] R13: 00007fffda0fe768 R14: 0000000000000000 R15: 0000000000000000
         [    0.105995] Kernel Offset: disabled
         [    0.106304] Rebooting in 1 seconds..
Error Release command failed, deployment aborted

Any help would be fine

The problem is addressed in this post https://community.fly.io/t/kernel-panic-when-deploying-app/4884.