Consolidate the three docker file into a single file
Background
Much of the complexity in this repository stems from it use of three separate dockerfiles as part of its build process. This degrades development cycle productivity by requiring the dev to understand how their modifications will impact which images, and subsequently rebuilding those images accordingly. Failure to rebuild the effected images can lead to host of issues related to stale images including; bugs on not detected, expect changes are not seen, etc. It also slows down the development cycle by requiring a dev to run and wait for multiple commands to execute in order to build the project.
Recommended changes
- Consolidate the three docker files into a single multi-stage file to retain current functionality (of building individual stages when desired), while removing the six separate commands for of the build process.
- Update the commands in the nox.py file to reflect single file approach.
Closure Criteria
- The three separate docker files (base, conda-environment, & docker) have been combined into a single file using a [multi-stage] build approach.
- The nox commands (in nox.py) have been updated to build the 3 projects (nldi, gpdtools, fabric) based of a single command (instead of three)
- Additional nox command has been added to allow a partial build up to any stage specified in the consolidated docker file.