Improve docker container generation/enable binder
To run tutorials effortlessly on any OS without having to install anything, binder can be used. The launched interactive notebook can be used directly by the user. See the use of binder in the OEO Temoa Project and how to get started with binder.
Some additional information:
-
Using binder requires a Docker image/Dockerfile.
-
The ixmp and message_data repos already contain Dockerfiles: ixmp, message_data. These are used by TeamCity to set up the containers on which tests are run.
-
Some of these steps could be consolidated/modularized, e.g.:
- A container/image with ixmp and GAMS.
- A container with message_ix (built on the above).
- A container with message_ix_models (built on the above).
(ii) is essentially what is currently in message_data; the image does not actually have the message_data code installed. Modularizing/reusing pieces would mean that (ii) and (iii) would no longer need to install GAMS; this would be done by (i).
-
We would need to investigate where to publish the images. ECE TeamCity (ene-builds.iiasa.ac.at) currently uses a local container repository. We could consider Dockerhub and/or GitHub.
-
It seems like the OEO binder sometimes fails to start due Binder resource constraints, i.e. taking too long to build. We would need to ensure this problem doesn't also afflict these various images.
-
Once images are available for each repo, these could be then be used as a dependency for the pytest CI workflows, i.e. the workflows could run on such images with the latest code installed.
-
These changes would also progress towards allowing people to run message_ix on cloud infrastructure.