Skip to content

hannahwoodward/docker-exocam

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ExoCAM (CESM1.2.1) Docker Image

Docker image to install and run a containerised ExoCAM (CESM1.2.1) on Fedora.

When first using this image, it is recommended to test correct installation before doing any production runs by running the simple CESM1.2.1 and ExoCAM examples under Usage.

Useful links

Installation & running via published image

docker pull woodwardsh/exocam:latest
  • Run container, noting the mounting of local dir shared to container /home/app/cesm/1_2_1/shared for shared storage of model cases, input, scratch, and output:
docker run -it --rm --volume=${PWD}/shared:/home/app/cesm/1_2_1/shared woodwardsh/exocam:latest

# Options:
# -it       interactive && TTY (starts shell inside container)
# --rm      delete container on exit
# --volume  mount local directory inside container

Podman

podman run -it --rm -v ${PWD}/shared:/home/app/cesm/1_2_1/shared --security-opt label=disable woodwardsh/exocam:latest

Installation & running via locally built image

git clone git@github.com:hannahwoodward/docker-exocam.git && cd docker-exocam
  • Build image from Dockerfile, passing in CESM repo credentials as build args (~15 min):
docker build --build-arg SVN_LOGIN= --build-arg SVN_PW= -t exocam .

# Or, if debugging:

docker build  --build-arg SVN_LOGIN= --build-arg SVN_PW= -t exocam . --progress=plain --no-cache
  • Run locally built container, noting the mounting of local dir shared to container /home/app/cesm/1_2_1/shared for shared storage of model baselines, cases, input, output, and tests:
docker run -it --rm --volume=${PWD}/shared:/home/app/cesm/1_2_1/shared exocam

# Options:
# -it       interactive && TTY (starts shell inside container)
# --rm      delete container on exit
# --volume  mount local directory inside container
# -w PATH   sets working directory inside container

Usage

  • Start docker container via docker|podman run ... as above
  • In MACH="docker" xml config in $CCSMROOT/scripts/ccsm_utils/Machines/config_machines.xml, edit GMAKE_J and MAX_TASKS_PER_NODE to match your hardware resource

CESM1.2.1 example

  • In the container, run:
cd $CCSMROOT/scripts
./create_newcase -res f45_g37 -compset X -mach docker -case $CCSMCASES/test1
cd $CCSMCASES/test1
./cesm_setup
csh test1.clean_build && csh test1.build
csh test1.run

ExoCAM example

  • In the container, run (see ExoCAM repo for more detailed instructions):
cd $CCSMROOT/scripts
./create_newcase -res f45_f45 -mach docker -compset E2000C4AQI -case $CCSMCASES/exo-aqua
cd $CCSMCASES/exo-aqua

sh exocam_setup setup -cloud-physics RK -config cam_aqua_fv -radiation-scheme n68equiv
./cesm_setup
csh exo-aqua.clean_build && csh exo-aqua.build
csh exo-aqua.run

Testing

  • TODO

Publishing image

docker login && docker tag exocam woodwardsh/exocam && docker push woodwardsh/exocam

About

ExoCAM Docker Image

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published