I figured out a solution, but wanted to share this in case other people search for this issue.
I had Dockerfile.development and Dockerfile.production files separate, because there were some differences that were needed for our test suite in development that we wanted to exclude from production. So Dockerfile was a symbolic link to Dockerfile.production.
When I ran
convox start, this error appeared:
$ convox start build | uploading source build | starting build build | Authenticating registry.convox/my-app: Login Succeeded build | Building: . build | ERROR: open Dockerfile: no such file or directory build | ERROR: open Dockerfile: no such file or directory ERROR: build failed
Removing the symlink and moving Dockerfile.production to Dockerfile fixed the error. I suspect specifying the path as Dockerfile.production in convox.yml would have also fixed it, but it took a while to figure out that the problem was because of the symlink.