Open agstephens opened 1 year ago
@alaniwi and @cehbrecht: what are your thoughts on the above suggestion?
dev-container
.devcontainer
directory with contents of here to start with: https://github.com/cedadev/esgf-stac-client/tree/dev-container/.devcontainerdevcontainer.json
, Dockerfile
and postCreateCommand.sh
Dockerfile
ingredients with following changes:
/workspaces/rook
(no need to COPY content elsewhere)spec-file.txt
instead of environment.yml
- (e.g.: conda env create --file spec-file.txt
) - this should be quicker than resolving environment.yml
rooki
and all dependencies in requirements.txt
and requirements_[dev,test].txt
roocs-utils
and all dependencies in requirements.txt
and requirements_[dev,test].txt
clisops
and all dependencies in requirements.txt
and requirements_[dev,test].txt
- but comment out roocs
dependenciesdaops
and all dependencies in requirements.txt
and requirements_[dev,test].txt
- but comment out roocs
dependenciesrook
(we are already in the rook
repo at this point) and all dependencies in requirements.txt
and requirements_[dev,test].txt
- but comment out roocs
dependencies
Creating a reproducible development environment
We want to create a simple development environment that developers can get up and running with in minutes.
The best option for that is Docker, because:
Which types of environment do we want to support?
We want a system that allows us to toggle various settings in the container that we are building:
include_slurm: True|False
conda_mode: environment_file|spec_file
roocs_mode: pypi|develop
How can we manage this?
It looks like we can use Docker Compose to provide a set of different configurations, e.g.:
https://docs.docker.com/compose/environment-variables/#using-the---env-file--option
Create multiple files, such as:
Usage is:
The Dockerfile will need some conditional lines like this: