The fly logs keep hanging on
2023-09-10T17:33:11.430 runner[328735da656718] ord [info] Pulling container image registry.fly.io/brick-drop-co:deployment-01HA02D2SCP8ESHVHDYF1T1EMV
2023-09-10T17:33:26.380 runner[328735da656718] ord [info] Successfully prepared image registry.fly.io/brick-drop-co:deployment-01HA02D2SCP8ESHVHDYF1T1EMV (14.950077281s)
2023-09-10T17:33:26.405 runner[328735da656718] ord [info] Setting up volume 'litefs'
2023-09-10T17:33:26.405 runner[328735da656718] ord [info] Opening encrypted volume
2023-09-10T17:33:26.786 runner[328735da656718] ord [info] Configuring firecracker
The fly consul shows this, and eventually times out -
[1/1] Waiting for 328735da656718 [web] to have state: started
This is one of two processes for the app. The other deploys just find, which makes me think this is not a issue like what happened with sin
and maa
. Though I did try the --local-build
flag to see if that caused any improvements -
References:
lhr [info]Configuring firecracker Failing
[sin] Deploy failed, stuck in Configuring firecracker - #4 by jerome
The image can run locally just fine. It runs litefs, which I know it can find, as well as the config file. So it also does not match the issue that was seen with command not found, error code 127.
Reference - Deploy stuck on 'Configuring firecracker'
Like the previous linked issue, it can not be stopped at all, and only deleted with --force
flag.
Here is the fly.toml
with some lines cut.
primary_region = "ord"
[build]
strategy = "canary"
[env]
# ENVs cut, but are not used by the app that is failing.
[processes]
# this app hangs
web = "litefs mount -config /etc/litefs.web.yml"
# this app works fine for health checks and runs app fine, but can't route too it, one problem at a time...
dir = "litefs mount -config /etc/litefs.directus.yml"
[http_service]
internal_port = 8080
force_https = true
auto_stop_machines = true
auto_start_machines = true
min_machines_running = 0
processes = ["web"]
[http_service.concurrency]
type = "connections"
hard_limit = 50
soft_limit = 25
[http_service.http_options.response.headers]
X-Process-Group = "web"
X-Frame-Options = "SAMEORIGIN"
X-XSS-Protection = "1; mode=block"
X-Content-Type-Options = "nosniff"
Referrer-Policy = "strict-origin-when-cross-origin"
Content-Security-Policy = "default-src 'self' 'unsafe-inline' 'unsafe-eval' data:; img-src * data:; font-src * data:; style-src * 'unsafe-inline'; script-src * 'unsafe-inline' 'unsafe-eval'; connect-src *; frame-src *; object-src *; media-src *; child-src *; form-action *; frame-ancestors *; block-all-mixed-content; upgrade-insecure-requests; manifest-src *; worker-src *; prefetch-src *;"
[[http_service.checks]]
grace_period = "10s"
interval = "30s"
method = "GET"
timeout = "5s"
path = "/"
[[services]]
internal_port = 8054
protocol = "tcp"
auto_stop_machines = true
auto_start_machines = true
min_machines_running = 1
processes = ["dir"]
# TODO: remove this once we confirm VPN/tunnel
[[services.ports]]
handlers = ["tls", "http"]
port = 3000
force_https = false
[services.ports.http_options.response.headers]
X-Process-Group = "dir"
[services.concurrency]
type = "connections"
hard_limit = 25
soft_limit = 20
[[services.http_checks]]
interval = 10000
grace_period = "5s"
method = "get"
path = "/admin/login"
protocol = "http"
timeout = 2000
tls_skip_verify = false
[services.http_checks.headers]
[checks]
[checks.web]
grace_period = "8s"
interval = "15s"
method = "get"
path = "/"
port = 8080
timeout = "30s"
type = "http"
processes = ["web"]
[checks.dir]
grace_period = "8s"
interval = "60s"
method = "get"
path = "/admin/login"
port = 8054
timeout = "60s"
type = "http"
processes = ["dir"]
[mounts]
source = "litefs"
destination = "/var/lib/litefs"
processes= ["web", "dir"]
[metrics]
port = 9091 # default for most prometheus clients
path = "/metrics"
Any help will be appreciate. This has me stumped.
I have run the go app locally just fine. And the base code for this app, is 100% the same as a POC I had running correctly before on fly.io, last week.