JohannesWiesner / csp_docker

A repository for creating Docker and Singularity files using Neurodocker
0 stars 1 forks source link

Start with completely empty base environment #18

Closed JohannesWiesner closed 1 year ago

JohannesWiesner commented 1 year ago

Currently we are creating a base environment and installing jupyter in it. After that we update base using a .yml file. Would it be possible to skip the conda_install option to create a completely empty environment as shown here?

JohannesWiesner commented 1 year ago

Test out what happens if you simply don't provide conda_install="jupyter". Is this even possible? If not, open issue on neurodocker and propose that if conda_install is not provided, neurodocker should use solution as described here

JohannesWiesner commented 1 year ago

I think we can leave it out. The miniconda base environment apparently already has a minimum number of packages (see https://docs.conda.io/en/latest/miniconda.html#miniconda), so it's not empty. conda_install=jupyter is therefore not necessary. In fact, when doing that and using the .yml file afterward to update the env, we trigger unnecessary solving issues. Would be interesting to know though, if one could also start with a completely empty environment (even without python)

JohannesWiesner commented 1 year ago

Just noted that even without conda_install="jupyter" we give conda a hard time to update base because it has to resolve a lot of stuff when using the "conda env update -n base --file /tmp/${conda_yml_file}"-approach (it seems to work though, however, it's just not very elegant and takes a lot of time). The best way would really be to leave base as it is and to create a new environment using conda env create -f environment.yml. But this apparently didn't work? It would be:

--miniconda \
version=latest \
yaml_file=$conda_yml_file 
JohannesWiesner commented 1 year ago

Closing for now. With commit https://github.com/JohannesWiesner/csp_docker/commit/1171de5100f258b530ae4d96701bbd265830d022 I re-wrote the script so that the base-env is left untouched. Instead we are creating the csp env using the .yml file. We are still left with the issue that the csp env is not activated when starting the container but this was also the case with the updated base env so this issue is independent from this issue here