Use mamba for environment update and creation in the Docker container build on DockerHub#2297
Use mamba for environment update and creation in the Docker container build on DockerHub#2297bouweandela merged 3 commits intomainfrom
Conversation
|
cheers @zklaus 🍺 Pls don't merge just yet coz I'd like to test a couple examples recipes, @bouweandela suggested we test the 4 horsemen (python, R, NCL and Julia) examples recipes and he's got a good point 👍 |
|
@bouweandela here's a question for you - why isn't the container esmvaltool able to replace tags like EDIT: nevermind, I is an idiot! What's the DRS for esgf-downloaded data? It's not BADC, it's smething else, gotta find the node where the data was downloaded first? |
|
Use the config-developer.yml from ESMValGroup/ESMValCore#1217: https://github.com/ESMValGroup/ESMValCore/blob/esgf-python/esmvalcore/config-developer.yml |
|
no, it dont work, I still get even if now my data is in: When was the last time you ran a recipe from a container you built? |
|
Did you mount the directory containing the data in the container as described in the docs: https://docs.esmvaltool.org/en/latest/quickstart/installation.html#install-with-docker? Can you share the output of |
|
OK the stuff that needs to run runs fine, that is a serious problem though - the incapacity of a container to solve for those |
|
I'm running this - btw you don't need to mount the data dir inside the container, if you specify a correct path in the config user all works fine: |
|
Now that I can use my data (in a common dir with drs: default), the preproccing works fine only to have a fail in the diagnostic right at the top: Either I got no idea what I'm doing or there is a serious inherent issue with the container 🤷♂️ |
|
yeah it looks like esmvaltool's not in the container? (note the empty space where ESMValTool version should be) But the container built OK and it looks of the correct size: |
|
Indeed, the development container contains all the development dependencies but not ESMValTool itself, we clone and pip install that for running the tests on CircleCI. Try the esmvaltool:latest container instead. |
|
now you tell me 🤦♂️ 😁 Which one's the file for latest |
|
also what's the deal, man, I spent 30min (with mamba, otherwise 200+ minutes with conda) building a full container with ESMValTool (deps and all) and now I can use only the Core bit of it - not optimal, we should just build a Core container for dev then |
|
nay bother, am rebuilding the dev container without the |
We use this container to run the tests on CircleCI, so we do not need to use conda to solve the environment and compile R dependencies etc for every test run, this makes the test run much faster: ESMValTool/.circleci/config.yml Line 26 in f9350ab Also, if you want to set up a development environment without bothering with conda, you could use it. |
|
ah it does make sense then 😁 We just need better documentation (or some documentation) on how to build yer own fully functional ESMValTool container, I'd also use more descriptive names like Dockerfile.dev -> DockerEnvironmentWithESMValCoreOnlyAndNOTESMValToolFile.dev 😁 |
|
I'll try to write something on what is what next week #2275 (comment) |
|
good man Bouwe 🍺 |
|
OK here's me ready for the weekend: I'vebuilt the full Core+Tool container (cheers, Bouwe, Dockerfile file was indeed the one!): and used it and ran the example recipes: Python OK, R OK, NCL OK, Julia not so much but that failed for the actual normal install too see #2303 - however, these all ran only when I used the default input data and drs, otherwise always stumbling on the issue in #2297 (comment) - either Im doing something wrong or there is an inherent issue in the container, either way, nothing to do with mamba and not using it, I say we let this PR go through 👍 Happy weekend, folks! |
Description
Local build works only when using
mambainstead ofcondafor env creation and update. We've really reached the end of the line forconda! The DockerHub build fails with a multitude of deps conflicts, starting apparently from esmvalcore, see output - with mamba I am able to sort out the env in less than 12min and it creats it no problemo!This in about half an hour, compared to the failed build of 220min on DockerHub with conda 🤦♂️
Before you get started
Checklist
It is the responsibility of the author to make sure the pull request is ready to review. The icons indicate whether the item will be subject to the 🛠 Technical or 🧪 Scientific review.