Metabase will be deprecating Heroku in an upcoming release.
I'm assuming that it's the Heroku Buildpack that is being deprecated? If I want to run Metabase on Heroku using their support for docker that it would be supported? We would be running on paid dynos with a paid database.
there seems that Heroku uses another container runtime that maybe doesn't recognize that entrypoint or there's something wrong with it. If you can run it locally you should be able to run it on Heroku
Here is our Docker file and docker-entrypoint.sh. I hope this helps. I contributed some of this but not all of it, so I'm not sure why the default ENTRYPOINT is not working for you.
FROM metabase/metabase-enterprise:v1.46.1
COPY docker-entrypoint.sh /app/
RUN ["chmod", "+x", "/app/docker-entrypoint.sh"]
ENTRYPOINT [ "/app/docker-entrypoint.sh" ]
#!/usr/bin/env bash
if [ "$PORT" ]; then
export MB_JETTY_PORT="$PORT"
fi
/app/run_metabase.sh
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.