We just did this. You can keep using the same Heroku app, and push and release a container. It's also possible to seamlessly rollback to the previous buildpack-based release.
Note that we also had to export MB_DB_CONNECTION_URI="$DATABASE_URL"
in our custom entrypoint script in the same way that @langsharpe handled the PORT
above. Without this, it looks like Metabase initializes a H2 database in the filesystem to store questions in. When Metabase first booted without this, it did so in setup mode as it couldn't find the existing database we'd been using.
Once you've got a custom Dockerfile and entry file as per above, the workflow is basically just heroku container:push web -a your-heroku-app; heroku container:release web -a your-heroku-app
and it should just work.