You’ll find that for any serious application development, you should be building locally in Docker. This follows the maxim that if it doesn’t work in production, you need to replicate the same failure locally, so you can then do some quick fix-retry loops until it is resolved. Running an application in Docker is very easy, so I would urge you to set aside some time to try it.
In the meantime, show us your Dockerfile, so we can advise. Please ensure you wrap that text in code fences, so it is readable in this forum (the </> button in the toolbar can also do it).
No, in both cases. Fly can run anything for which you can find a matching Linux operating system.