cybergis / cybergis-compute-core

Apache License 2.0
7 stars 6 forks source link

[Improvement] Streamline Container.json #87

Closed alexandermichels closed 10 months ago

alexandermichels commented 1 year ago

The current configuration for the containers is difficult to maintain. Right now, we have for each container, for each HPC, a path. For example:

  "python": {
    "dockerfile": "",
    "dockerhub": "",
    "hpc_path": {
      "keeling_community": "/data/keeling/a/cigi-gisolve/simages/python.sif",
      "expanse_community": "/home/cybergis/SUMMA_IMAGE/python.sif",
      "bridges_community_gpu": "/jet/home/cybergis/image/python.sif",
      "anvil_community": "/home/x-cybergis/simages/python.sif"
    },
    "mount": {
    }
  },
  "cybergisx-0.4": {
    "dockerfile": "",
    "dockerhub": "",
    "hpc_path": {
      "expanse_community": "/home/cybergis/SUMMA_IMAGE/cybergisx_0.4.simg",
      "keeling_community": "/data/keeling/a/cigi-gisolve/simages/cybergisx_0.4.simg",
      "bridges_community_gpu": "/jet/home/cybergis/image/cybergisx_0.4.simg",
      "anvil_community": "/home/x-cybergis/simages/cybergisx_0.4.simg"
    },
    "mount": {
    }
  },

I'd like to replace this by having an "SIMAGE_PATH" or similar setting in the hpc.json config and then the container.json only needs to have the name of the file instead of a dictionary of HPC -> path. Would this cause any issues?

So as an example, hpc.json would add a line like:

"keeling_community" {
    "simage_path": "/data/keeling/a/cigi-gisolve/simages/"
}

Then container.json would just be like:

  "python": {
    "dockerfile": "",
    "dockerhub": "",
    "filename": "python.sif",
    "mount": {
    }

so just a filename replacing the HPC dictionary.