evoldoers / biomake

GNU-Make-like utility for managing builds and complex workflows
BSD 3-Clause "New" or "Revised" License
100 stars 9 forks source link

[WIP] Dockerizing biomake #60

Closed cmungall closed 3 years ago

cmungall commented 6 years ago

To be used as an alternative to brew install or manually installing biomake.

Test balloon up here: https://hub.docker.com/r/cmungall/biomake/

TODO: figure out how to put this under evoldoers

If you have docker installed, you should be able to navigate to your directory with a makefile and do a:

docker run -v $PWD:/work -w /work --rm -ti cmungall/biomake biomake TARGET

or do make a shell script in the same folder

#!/bin/sh
docker run -v $PWD:/work -w /work --rm -ti cmungall/biomake "$@"

If you require files from up one or more levels this should be modified accordingly.

This is possibly a naive first attempt. Note that if you want to dockerize the actual commands that are run via biomake, and you run biomake in a docker container, you will have a docker-in-docker situation; while not wrong, this is generally discouraged. There are probably better ways to do this, but this is to get the ball rolling...

cmungall commented 6 years ago

we have @evoldoers on dockerhub: https://hub.docker.com/u/evoldoers/

@ihh do you have a username on dockerhub? If you create an account I'll add you to the owners

cmungall commented 5 years ago

In addition to running biomake in a docker container, we should provide a declarative way to execute commands in a specified container. Of course it is easy to do this explicitly in the Makefile, but this requires lots of boilerplate.

Following CWL:

https://www.commonwl.org/user_guide/07-containers/

We could specify hints about how to run each target

This is even more straightforward with snakemake: https://snakemake.readthedocs.io/en/v4.3.0/snakefiles/deployment.html

There are various ways to do this: