Here at SKA South Africa we have been dockering for a while now. Although we love docker and think it solves some problems, it also introduces new problems. This talk summarises the problems and our alternatives and workarounds.
Copy on write • Sounds weird • Impossible for radio astronomy (TB’s of data) • But it is actually nice • Implicit parallelisation • Reproducibility • Consistency • ‘functional programming’ • Working on getting it in CWL 1.1 • RADIO ASTRONOMY NEEDS NEW DATA FORMAT/ MANAGEMENT
runs as root • Quite easy to escalate privileges • Bug open for 2.5 years now • https://github.com/docker/ docker/issues/6324 • HPC providers don’t allow docker because of this
docker? • Why no packaging? Build scripts? Fabric? Ansible? The internet was created without docker. • Alternative solutions! Singularity, rkt, LXC • Just have a look at it
version • workaround: nvidia-docker • workaround: custom container per Nvidia module • Replacing one problem with an other one! Aks yourself why do you need docker?
any container solution, or VM. Or host! • Combine packages in new containers • Manage dependencies • There are many tools out there to help you packaging • You can automate packaging
original released software in git • use branches/tags for version indication • Augment source tree with Debian files • use gbp CLI to manage Debian source tree • https://github.com/kernsuite-debian/wsclean
• packaging on steroids with git-buildpackage: http:// honk.sigxcpu.org/projects/git-buildpackage/manual-html/gbp.html • how we do it: https://github.com/kernsuite/packaging/wiki/How- to-do-KERN-packaging • template: https://github.com/kernsuite/template • the official Debian documentation: https://www.debian.org/doc/ manuals/maint-guide/
the packaged software is well written • Many implicit helper functions • Makes it a bit harder when software misbehaves • Do the packaging on a clean system/environment (docker!)
things • Docker is not suited for all cases • Some problems can/will be solved but not all • singularity probably better for shared infrastructure • Packaging software is almost always a good thing