NBISweden / development-guidelines

Development guidlines for software within NBIS.
GNU General Public License v3.0
16 stars 8 forks source link

Container usage #24

Open danr opened 3 years ago

danr commented 3 years ago

_Team :yellowsquare::

We usually use docker for easy setup for deployment and reproducibility across team members. Some recommendations about this could be in the document or in a separate document.

Another alternative to docker that's used in uppmax (afaik) is Singularity.

Dan philosophises: Although mostly removes the "works on my computer"-problem, where code that consistently works on your computer fails when your colleague tries it, it comes with some problems on its own. Setting up docker for your project can be surprisingly time-consuming. One reason for this is that when trying you typically need to rebuild everything. Volumes (and possibly other caches?) not being reset and emptied can be another problem. Another can be images and non-containerized repositories not being in sync.

This also happens when you check out another branch and need to rebuild everything to try it out.

I am all ears if you know some better way to use docker or have some alternative.

danr commented 3 years ago

Related: #23 about language-specific environments.