Hmmmm - Do you have a yarn.lock or package.lock file locally that’s not committed to the git repository?
Also be sure to double check build output. You should be able to add env var NO_COLOR=1 before running fly deploy in order to get the “plain” version of the docker build output, which can help uncover errors when building.
(Although I think it would fail to build the Docker image there, but there might be some clues. You could even add some debugging information - echo "foo"; in the conditionals of the Dockerfile to see which if / elif statement is being run).