[x] Implemented the source code change that satisfies the tests
[x] Documented the feature by providing worked example
[x] Updated the README or other documentation
[x] Completed the pre-Request checklist below
Change Description
Currently, we have a Dockerfile.devenv and a Dockerfile.production, which depends on it. The former sets up the build dependencies using Spack, as well as installing XIOS. This is inconvenient for updating XIOS because rebuilding the dev-env image requires rebuilding the Spack environment, too.
This PR separates out Dockerfile.devenv into two steps: Dockerfile.base, which installs the dependencies, and Dockerfile.devenv, which pulls in those and installs XIOS.
I've built the images locally, as well as Dockerfile.production, which is built on top of Dockerfile.devenv. Running the production Docker image built with mpi=ON and xios=ON, I was able to run the tests successfully. Once the reviewer is happy with the changes, I can push the Docker images to ghcr.
Pre-Request Checklist
[x] The requirements of this pull request are fully captured in an issue or design specification and are linked and summarised in the description of this PR
[x] No new warnings are generated
[x] The documentation has been updated (or an issue has been created to track the corresponding change)
[x] Methods and Tests are commented such that they can be understood without having to obtain additional context
[x] This PR/Issue is labelled as a bug/feature/enhancement/breaking change
[x] File dates have been updated to reflect modification date
[x] This change conforms to the conventions described in the README
We discussed this in the meeting and I realised it's not such a big deal. I usually run Docker builds with the --no-cache option but this can be avoided in most cases.
Separate out XIOS Docker build
Fixes #625
Task List
Change Description
Currently, we have a
Dockerfile.devenv
and aDockerfile.production
, which depends on it. The former sets up the build dependencies using Spack, as well as installing XIOS. This is inconvenient for updating XIOS because rebuilding the dev-env image requires rebuilding the Spack environment, too.This PR separates out
Dockerfile.devenv
into two steps:Dockerfile.base
, which installs the dependencies, andDockerfile.devenv
, which pulls in those and installs XIOS.I've built the images locally, as well as
Dockerfile.production
, which is built on top ofDockerfile.devenv
. Running the production Docker image built withmpi=ON
andxios=ON
, I was able to run the tests successfully. Once the reviewer is happy with the changes, I can push the Docker images to ghcr.Pre-Request Checklist