4 ms·
Not technically in production yet, but I use Docker for the following scenarios: - Build agents for TeamCity, this was one of the first scenarios and it's been
by grownseed 12y ago
Not technically in production yet, but I use Docker for the following scenarios:
- Build agents for TeamCity, this was one of the first scenarios and it's been amazingly helpful so far.
- Building third-party binaries in a reproducible environment
- Running bioinformatics pipelines in consistent environments (using the above tools)
- Circumventing the painfully inept IT department to give people in my group easy access to various tools
I've also been contemplating building a Docker-based HPC cluster for a while now, though unfortunately I'm currently lacking support to make that happen.
- zenlikethat 12y ago> Building third-party binaries in a reproducible environment Awesome! Not enough people talk about this use case IMO. For instance, docker itself and the docker-cli are both compiled inside of a docker container. This allows you to circumvent the "OK, install the right version of Go, all the libraries I need etc." song and dance if you're developing in a new place (or if new developers join in the contribution). It's also a great way to circumvent the (all to familiar) problem of "OK which lib* do I need to get this to compile? It isn't documented" problem.
- positivejam 12y ago> - Build agents for TeamCity, this was one of the first scenarios and it's been amazingly helpful so far. Can you expand on what you've done with them and how it's been helpful?
- grownseed 12y agoThe image basically contains (on top of the TeamCity agent itself of course) all the required dependencies. These dependencies are built in exactly the same way (and in the same context) as the ones used for running the code itself (i.e. after building/testing). This basically ensures that the code consistently runs in the same conditions. Using Docker for this also means I can roll out the agents rather painlessly across a variety of machines. For instance, we have some pretty serious hardware used for HPC and similar stuff, so whenever possible I like running builds on that, since it takes a fraction of the time it would on the more common hardware. Sometimes however those machines aren't available for a number of different reasons, so I can very quickly move my build agents to another machine, or better even, multiple machines.
- positivejam 12y agoVery cool, thanks!