{"id":18963954,"url":"https://github.com/JaneliaSciComp/maru","last_synced_at":"2025-04-16T05:31:33.685Z","repository":{"id":137881448,"uuid":"287157946","full_name":"JaneliaSciComp/maru","owner":"JaneliaSciComp","description":"Maru is an opinionated command-line interface for quickly and easily containerizing scientific applications.","archived":false,"fork":false,"pushed_at":"2021-08-31T21:45:55.000Z","size":198,"stargazers_count":5,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-29T08:03:35.690Z","etag":null,"topics":["computational-plugins","container","containerization","docker","hpc","scientific-computing"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/JaneliaSciComp.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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}},"created_at":"2020-08-13T02:05:16.000Z","updated_at":"2022-08-26T16:50:47.000Z","dependencies_parsed_at":null,"dependency_job_id":"f721f43c-8a61-4957-91e2-e45685fb9982","html_url":"https://github.com/JaneliaSciComp/maru","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JaneliaSciComp%2Fmaru","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JaneliaSciComp%2Fmaru/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JaneliaSciComp%2Fmaru/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JaneliaSciComp%2Fmaru/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JaneliaSciComp","download_url":"https://codeload.github.com/JaneliaSciComp/maru/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249201117,"owners_count":21229004,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["computational-plugins","container","containerization","docker","hpc","scientific-computing"],"created_at":"2024-11-08T14:22:36.944Z","updated_at":"2025-04-16T05:31:33.679Z","avatar_url":"https://github.com/JaneliaSciComp.png","language":"Go","readme":"# Maru\n\nMaru is an opinionated command-line interface for quickly and easily containerizing scientific applications, enabling reproducible results and low-friction collaboration. \n\nMaru provides a CLI wizard for easily creating containers of various flavors (Python, Java, MATLAB, Fiji, etc.) which follow best practices and are optimized for performance. It also makes it easy to keep your container versioned and provides convenience commands so that you can focus on your algorithms instead of learning arcane details about containers. \n\n## Get Maru\n\nMaru depends on [Docker](https://docs.docker.com/get-docker/) and/or [Singularity](https://github.com/hpcng/singularity).\n\nThe following one-liners install the `maru` binary into /usr/local/bin:\n\n### Linux\n```\ncurl -skL https://data.janelia.org/maru-linux | sudo tar -xz -C /usr/local/bin\n```\n\n### MacOS\n```\ncurl -skL https://data.janelia.org/maru-macos | sudo tar -xz -C /usr/local/bin\n```\n\nYou can also download the [latest release](https://github.com/JaneliaSciComp/maru/releases/latest) and manually copy it to anywhere in your `$PATH`.\n\n## Usage\n\nMaru assumes that your project is committed to a remote git repository. During the container build, Maru will clone your repository and run any build commands you specify.\n\nFirst, initialize the project configuration:\n```\nmaru init\n```\nThis is an interactive process that will ask you questions about where to find your project and how to build it.\n\nNow you can build your project into a Docker container:\n```\nmaru build\n```\n\nFrom your project directory, you can always run the current version of your Docker container:\n```\nmaru run [args to app]\n```\nThis will also output the Docker command used to run the container, which you can then use in scripts or pipelines to integrate your app into a larger workflow.\n\nYou can also run the Docker container using Singularity (e.g. on an HPC cluster):\n```\nmaru singularity run [args to app]\n```\n\n## Documentation\n\nMaru has lots of features for building, releasing, and distributing your containers. \n\nFor more details, see the [User Manual](docs/UserManual.md).\n\nFor developers, there are some notes available about [building and releasing Maru](docs/Development.md).\n\n","funding_links":[],"categories":["Containerization"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FJaneliaSciComp%2Fmaru","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FJaneliaSciComp%2Fmaru","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FJaneliaSciComp%2Fmaru/lists"}