Base images¶
Two Docker images, one for the BMI mappings and examples, the other for the grpc4bmi C++ server, are used as base images in this project. Both are built on recent conda-forge and Ubuntu base images.
Figure 1 : Inheritance diagram for the BMI and grpc4bmi base images.¶
BMI base image¶
The BMI base image contains built versions of the BMI mappings and example models for C, C++, Fortran, and Python. This image is the base for building models that expose a BMI in these languages, or for inter-language model coupling.
Language |
Mapping |
Example implementation |
|---|---|---|
C |
||
C++ |
||
Fortran |
||
Python |
The image is built on the condaforge/miniforge3 base image available from Docker Hub.
The OS is Linux/Ubuntu.
The shell is bash.
Conda, as well as the BMI language mappings and examples, are installed in CONDA_DIR=/opt/conda.
The base environment is activated.
The source code used to build this image, as well as simple examples of its use, can be found on GitHub at csdms/bmi-docker. A versioned, multiplatform image built from this repository is hosted on Docker Hub at csdms/bmi.
BMI base image
Source repository: https://github.com/csdms/bmi-docker
Image repository: https://hub.docker.com/r/csdms/bmi
grpc4bmi base image¶
The grpc4bmi base image is built on the BMI base image, so it contains everything described in the section above.
Further, it contains a built version of the grpc4bmi C++ server, also installed in CONDA_DIR=/opt/conda.
Dependencies for the server are met with gRPC conda packages available from the conda-forge channel.
The source code used to build this image can be found on GitHub at csdms/grpc4bmi-docker. A versioned, multiplatform image built from this repository is hosted on Docker Hub at csdms/grpc4bmi.
grpc4bmi base image
Source repository: https://github.com/csdms/grpc4bmi-docker
Image repository: https://hub.docker.com/r/csdms/grpc4bmi