Resources¶
What to learn next¶
We recommend reading the chapter on testing, and then the chapter on continuous integration. Note that the chapter on version control is a prerequisite for the chapter on continuous integration. The open research chapter also contains further information on sharing research reproducibly.
Further reading¶
The Docker documentation contains a lot of information about containers in general.
Definitions/glossary¶
Binder: A web-based service which allows users to upload and share fully-functioning versions of their projects in an environment they define.
Computational environment: Features of a computer which can impact the behaviour of work done on it, such as its operating system, what software it has installed, and what versions of software packages are installed.
Conda: A commonly used package management system.
Container: Lightweight files that can encapsulate and entire computational environment including its operating system, customised settings, software and files.
Dockerfile: A file used for creating Docker images
Image: Files used for generating containers.
Package management system: A tool for installing, managing, and uninstalling software packages including specific versions.
Virtual machine: A simulated computer that can encapsulate and entire computational environment including its operating system, customised settings, software and files.
YAML: A human readable/writable markup language which used by many projects for configuration files.
Bibliography¶
Materials in the “what is a computational environment” section¶
semantic versioning Creative Commons - CC BY 3.0
Materials in the “how this will help you/why this is useful” section¶
A. Brinckman, et al., Computing environments for reproducibility: Capturing the “Whole Tale”, Future Generation Computer Systems (2018), https://doi.org/10.1016/j.future.2017.12.029 Attribution 4.0 International (CC BY 4.0)
Paper presenting singularity CC0 1.0 Universal (CC0 1.0)
Materials in the summary of ways to capture computational environments section¶
Paper presenting singularity CC0 1.0 Universal (CC0 1.0)
Materials in the package management systems section¶
Package Managers Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)
Talk by Will Furnass on Conda Attribution-NonCommercial-ShareAlike 4.0 International
Materials in the YAML files section¶
Materials in the Binder section¶
Binder illustration Permission to use granted by Juliette Taka, Logilab and the OpenDreamKit project.
Materials in the virtual machines section¶
Materials in the containers section¶
What is docker? CC BY-SA 4.0
What are containers? CC BY-SA 4.0
Docker carpentry Creative Commons Attribution 4.0
Geohackweek tutorial Creative Commons Attribution 3.0 Unported
Nüst, D., Sochat, V., Marwick, B., Eglen, S., Head, T., & Hirst, T. (2020, April 17). Ten Simple Rules for Writing Dockerfiles for Reproducible Data Science, https://doi.org/10.31219/osf.io/fsd7t Creative Commons Attribution 4.0 International