Open jfeist opened 8 years ago
I was in a bit of a rush when writing this earlier, so here are some more comments/ideas:
Anyway, I hope you find this useful, @HomerReid. We can discuss the details in "person" to decide how to proceed (if at all), if you want.
Thanks Johannes! This is awesome. It sounds like this will be a major improvement to the ease with which new users can get started using the codes. I am going to set aside some time this weekend to learn how it works and update my installation documentation to offer the docker image as a quick-start technique for new users who want to try things out quickly.
The choices you made seem quite reasonable---the kind of user who will benefit most from this will probably be most interested in running the command-line codes, while users interested in the C++ and python interfaces will probably be able to install the code and its dependencies on their own the traditional (hard) way.
Of course the idea of continuous integration is also crucial, since it wouldn't be very useful if the docker image weren't up to date with the latest changes. I will look into that too, and hope my attempts to get it working will also spur me finally to get some real-life working unit tests into the repository so that we can take full advantage of the work you did to enable Travis CI. (Among other things, I really need unit tests soon so that I can merge some significant changes and improvements I have been making on the development branch without fearing they will silently break things behind the scenes.)
Thanks for yet another important contribution to the ongoing viability of SCUFF-EM as a modern package that makes proper use of modern tools like TravisCI and Docker.
Since I've wanted to play around with Docker for a while already, I decided to try to make a docker image with all the scuff-em programs installed, and it turned out to be pretty straightforward. The image and some very brief documentation is available at https://hub.docker.com/r/jfeist/scuff-em/.
The gist of it is that if you have docker installed, you should be able to run
docker run jfeist/scuff-em
and it automatically pulls the machine from the docker hub (on the first use), and when running, tells you which subprograms are available (scuff-scatter, scuff-cas3D, etc..).An actual run should look something like this:
The Dockerfile needed to build this container is in this repository: https://github.com/jfeist/scuff-em-docker. I have also included a small script there (
scuff
) that automatically looks for all the validscuff-xyz
programs and runs them, so you can just passscatter
to the container, notscuff-scatter
(and running it without arguments lists the available ones). It might be actually useful to include this script in the main scuff repository, not just in the docker image (although I guess it depends on having bash as the shell, as it usescompgen
to find valid programs starting withscuff-
- there may be a better solution).