e-mission / e-mission-docs

Repository for docs and issues. If you need help, please file an issue here. Public conversations are better for open source projects than private email.
https://e-mission.readthedocs.io/en/latest
BSD 3-Clause "New" or "Revised" License
15 stars 34 forks source link

Heroku deployment procedure #714

Closed montaguegabe closed 2 years ago

montaguegabe commented 2 years ago

Hello,

I will be documenting my process of attempting to deploy e-mission on Heroku here.

What I have learned so far:

Heroku recommends Docker over their buildpack system for deployment of any Anaconda projects

I'll be using the Heroku container registry

First clone the docker repo: git clone https://github.com/e-mission/e-mission-docker.git

Then cd to the place with the web-app Dockerfile: examples/em-server-multi-tier-cronjob/webapp/.

Then follow instructions at https://devcenter.heroku.com/articles/container-registry-and-runtime#getting-started to deploy the Dockerfile. The first time you run the commands they will fail because by default, the dynos do not have enough memory. The process of installing all the conda packages requires a little over 1 GB of memory, so you will need to run a dedicated Performance M dyno with 2.5 GB of memory (at least for this step).

Another thing preventing the instructions from succeeding will be configuration of the MongoDB database. I will use a MongoDB database from mongodb.com for now, which makes it easy to provision a DB and get connection parameters to it. These connection parameters should be joined into a connection URL and set in the Heroku dashboard (App -> Settings -> Reveal Config Vars)

Still to figure out

shankari commented 2 years ago

Closing this since @montaguegabe has decided to switch to the NREL hosted version. https://www.nrel.gov/transportation/openpath-nrel-hosted-version.html