Hi. I need to make some tests on a library that requires access to the Fly.io environment (env variables and internal DNS), currently I would just like to manually run the tests using a SSH connection to my instance. I was wondering if there would be a way to deploy an app even if it doesn’t create a server to respond to health checks?
Thank you! Weirdly contrary to what I thought just a few minutes ago (removed my answer since) it seems that not declaring any service still causes health checks to be done, I don’t really understand why.
I will try exposing a service and making the checks empty like you described.
I tried it and it seems that it still wants to make some health checks, I wonder if I missed something or if there might still be some sort of default health check that cannot be removed?
Try putting [[services]] in your config (just the one line). When you deploy with [[services]] and then remove the block entirely, it keeps the previous definitions. Adding [[services]] clears it out.
I read your answer too fast, I since removed the [[services]] line and now while I don’t see any health checks anymore I get this error:
==> Creating release
--> release v7 created
--> You can detach the terminal anytime without stopping the deployment
==> Monitoring deployment
v5 failed - Failed due to unhealthy allocations - no stable job version to auto revert to
--> v5 failed - Failed due to unhealthy allocations - no stable job version to auto revert to and deploying as v6
--> Troubleshooting guide at https://fly.io/docs/getting-started/troubleshooting/
I am not even specifying any executable yet in my Dockerfile so I’m unsure what the unhealthy allocations might be?
Ah! You will have to define a long running CMD. We expect there to be a process running in these VMs. You can make the command sleep infinity just to get it running.
--> v22 failed - Failed due to unhealthy allocations - not rolling back to stable job version 22 as current job has same specification and deploying as v23
In case an ENTRYPOINT is specified in a Dockerfile or a parent Docker Image remove the [[services]] block entirely, it will send the process output to the application log.