{"id":23478450,"url":"https://github.com/easybuilders/eb-singularity","last_synced_at":"2026-02-17T15:30:47.112Z","repository":{"id":66930867,"uuid":"96550636","full_name":"easybuilders/eb-singularity","owner":"easybuilders","description":"Stuff related to integrating EasyBuild \u0026 Singularity","archived":false,"fork":false,"pushed_at":"2020-06-17T12:20:21.000Z","size":37,"stargazers_count":6,"open_issues_count":0,"forks_count":4,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-10-09T14:42:45.166Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Roff","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/easybuilders.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2017-07-07T15:14:17.000Z","updated_at":"2024-03-12T23:25:31.000Z","dependencies_parsed_at":"2023-02-22T09:00:54.540Z","dependency_job_id":null,"html_url":"https://github.com/easybuilders/eb-singularity","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/easybuilders/eb-singularity","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/easybuilders%2Feb-singularity","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/easybuilders%2Feb-singularity/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/easybuilders%2Feb-singularity/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/easybuilders%2Feb-singularity/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/easybuilders","download_url":"https://codeload.github.com/easybuilders/eb-singularity/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/easybuilders%2Feb-singularity/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29548276,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-17T14:33:00.708Z","status":"ssl_error","status_checked_at":"2026-02-17T14:32:58.657Z","response_time":100,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-12-24T19:20:00.055Z","updated_at":"2026-02-17T15:30:47.107Z","avatar_url":"https://github.com/easybuilders.png","language":"Roff","funding_links":[],"categories":[],"sub_categories":[],"readme":"eb-singularity\n---------------\n\nThis repo contains Singularity definition file generated by easybuild to build containers. The containers are built on `Sylabs Cloud \u003chttps://cloud.sylabs.io/\u003e`_\n\nEasybuild Base Container\n-------------------------\n\nThere is a Singularity recipe for Easybuild Base contaienr for Centos 7 called `Singularity.Easybuild-CentOS-7 \u003chttps://github.com/shahzebsiddiqui/eb-singularity/blob/master/Singularity.Easybuild-CentOS-7\u003e`_. \nThe easybuild base container is meant to configure easybuild environment so we can build Singularity containers with easybuild. We can extend the\nbase container concept for other distributions\n\nThe easybuild base container can be fetched by running::\n\n  singularity pull --arch amd64 library://shahzebmsiddiqui/default/easybuild:centos-7\n  \nDirectory Structure Recommendation\n-----------------------------------\n\nThe top-level ``proposal`` directory contains a few ways we can organize Singularity Recipe files. Once this is decided by the easybuild community we \ncan enforce this when building the container library. \n\nEasybuild Singulariy Recipes\n-----------------------------\n\nThe ``apps`` directory contains the Easybuild Singularity Recipe that were successfully built in Sylabs Cloud into containers. The recipe \nfiles were auto-generated by easybuild and tweaked manually afterwards.  \n\nThe easybuild container stack can be found at Sylabs at https://cloud.sylabs.io/library/shahzebmsiddiqui/easybuild-centos7 \n\nGetting Started\n----------------\n\nYou can pull one of the easybuild containers from Sylabs let's say ``java:1.8.0_92`` as follows::\n\n  singularity pull --arch amd64 library://shahzebmsiddiqui/easybuild-centos7/java:1.8.0_92\n  \nOnce we have the container locally we can shell into container and see the modules loaded::\n\n  ssi29@ag-mxg-hulk090\u003e singularity shell java-1.8.0_92.sif\n  Singularity java-1.8.0_92.sif:~/gpfs/eb-images\u003e module av\n\n  -------------------------------- /app/modules/all ----------------------------------------\n     Java/1.8.0_92 (L)\n\n    Where:\n     L:  Module is loaded\n\n  Use \"module spider\" to find all possible modules and extensions.\n  Use \"module keyword key1 key2 ...\" to search for all possible modules matching any of the \"keys\".\n\n\nThe java binary is accessible in the container ``$PATH`` so you can use this container to build your Java program such as a ``helloworld.java`` as follows::\n\n  ssi29@ag-mxg-hulk090\u003e singularity exec java-1.8.0_92.sif javac  helloworld.java\n  ssi29@ag-mxg-hulk090\u003e singularity exec java-1.8.0_92.sif java HelloWorld\n  Hello, World\n\n\nFew Important Points\n---------------------\n\nCurrently, we don't have a central repository for building easybuild containers. Building a container registry on-prem using `Singularity Enterprise \u003chttps://sylabs.io/singularity-enterprise/\u003e`_  would \nlimit the open source community from contributing back. According to Sylabs, Singularity Enterprise is on-prem version of Sylabs Cloud.\n\nWhen you build containers on Sylabs Cloud, you can only push containers to your library (i.e ``https://cloud.sylabs.io/library/shahzebmsiddiqui/``). This\nprevents others from contributing because their is no concept of shared namespace for a library with Access Control List (ACLs) to control permission\non a library. I foresee easybuild maintainers have the following ACLs ``Push``, ``Update``, ``Delete`` on containers and everyone has ``Pull`` access\nto all containers in a library.  \n\n\n\nContributing Back\n-----------------\n\nIf you are interested in contributing back, fork the repo https://github.com/shahzebsiddiqui/eb-singularity and generate your recipe and issue a\nPR and I will build and publish the container in my library at https://cloud.sylabs.io/library/shahzebmsiddiqui/easybuild-centos7  \n\nYou should build your containers using the base container provided in this repo, this means you should have the following line set in your \nrecipe::\n\n  Bootstrap: library\n  From:  shahzebmsiddiqui/default/easybuild:centos-7\n\n\nThe quickest way to get started is copy one of the recipe files in ``apps``. To demonstrate we will try building ``M4-1.4.19`` by using one\nof the existing recipes.\n\nFirst navigate to your fork and go to the ``m4`` directory and copy the file as follows::\n\n  cd apps/m/m4\n  cp Singularity.M4-1.4.18 Singularity.M4-1.4.19\n\n\nThe format of the recipe file is ``Singularity.\u003ceasyconfig\u003e`` without the ``.eb`` extension. Next we change the following lines\n\n- ``eb M4-1.4.18.eb --robot`` --\u003e ``eb M4-1.4.19.eb --robot``\n\n- ``module load M4/1.4.18`` --\u003e ``module load M4/1.4.19``\n\nThere will be some containers that can't be built on Sylabs either due to timeout (60min) or eb can't fetch source files (Java). In those\ncases we need to build container locally and push it to Sylabs. For example, the ``java:1.8.0_92`` container found at https://cloud.sylabs.io/library/shahzebmsiddiqui/easybuild-centos7/java was \nbuilt locally and pushed to Sylabs. \n\nCertainly there will be some applications that require additional dependencies to be installed in ``%post`` section, so ``copy-paste`` and build \ncontainer won't work, you will need to work through the details and build container successfully before we can accept it.\n\nContainer Stacking\n-------------------\n\nWhen you are building containers, please reuse existing containers as a base image to satisfy all the dependency. For example ``ant-1.9.7-Java-1.8.0_92.eb`` has \na dependency on ``Java-1.8.0.92.eb`` so we set the base image to the following::\n\n  Bootstrap: library\n  From:  shahzebmsiddiqui/easybuild-centos7/java:1.8.0_92\n\nSee recipe file for `Singularity.ant-1.9.7-Java-1.8.0_92 \u003chttps://github.com/shahzebsiddiqui/eb-singularity/blob/master/apps/a/ant/Singularity.ant-1.9.7-Java-1.8.0_92\u003e`_ for\nmore details.\n\nIf you were to build ant with the easybuild base image we would end up building the entire dependency tree including Java-1.8.0_92. We can\nconfirm this by running a dry run ``-D`` to see all the modules built::\n\n  $ eb ant-1.9.7-Java-1.8.0_92.eb -D\n  == temporary log file in case of crash /scratch/eb-dYEUtq/easybuild-fC51To.log\n  Dry run: printing build status of easyconfigs and dependencies\n  CFGS=/mxg-hpc/users/ssi29/easybuild/software/EasyBuild/4.1.0/easybuild/easyconfigs\n   * [ ] $CFGS/j/Java/Java-1.8.0_92.eb (module: Java/1.8.0_92)\n   * [ ] $CFGS/j/JUnit/JUnit-4.12-Java-1.8.0_92.eb (module: JUnit/4.12-Java-1.8.0_92)\n   * [ ] $CFGS/a/ant/ant-1.9.7-Java-1.8.0_92.eb (module: ant/1.9.7-Java-1.8.0_92)\n  == Temporary log file(s) /scratch/eb-dYEUtq/easybuild-fC51To.log* have been removed.\n  == Temporary directory /scratch/eb-dYEUtq has been removed.\n\n\n\n\n\n\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feasybuilders%2Feb-singularity","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Feasybuilders%2Feb-singularity","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feasybuilders%2Feb-singularity/lists"}