MCPcopy
hub / github.com/apptainer/apptainer

github.com/apptainer/apptainer @v1.5.2 sqlite

repository ↗ · DeepWiki ↗ · release v1.5.2 ↗
3,041 symbols 14,966 edges 518 files 1,874 documented · 62%
README

Apptainer

CI Go Reference Go Report Card

What is Apptainer?

Apptainer is an open source container platform designed to be simple, fast, and secure. Many container platforms are available, but Apptainer is designed for ease-of-use on shared systems and in high performance computing (HPC) environments. It features:

  • An immutable single-file container image format, supporting cryptographic signatures and encryption.
  • Integration over isolation by default. Easily make use of GPUs, high speed networks, parallel filesystems on a cluster or server.
  • Mobility of compute. The single file SIF container format is easy to transport and share.
  • A simple, effective security model. You are the same user inside a container as outside, and cannot gain additional privilege on the host system by default.

Apptainer is open source software, distributed under the BSD License.

Apptainer was formerly known as Singularity and is now a part of the Linux Foundation. When migrating from Singularity see the admin migration documentation and user compatibility documentation.

Getting Started with Apptainer

To install Apptainer from source, see the installation instructions. For other installation options, see our guide.

System administrators can learn how to configure Apptainer, and get an overview of its architecture and security features in the administrator guide.

For users, see the user guide for details on how to run and build containers with Apptainer.

Contributing to Apptainer

Community contributions are always greatly appreciated. To start developing Apptainer, check out the guidelines for contributing.

Please note we have a code of conduct. Please follow it in all your interactions with the project members and users.

We also welcome contributions to our user guide and admin guide.

Support

To get help with Apptainer, check out the Apptainer Support web page.

Go Version Compatibility

Apptainer aims to maintain support for the two most recent stable versions of Go. This corresponds to the Go Release Maintenance Policy and Security Policy, ensuring critical bug fixes and security patches are available for all supported language versions.

Citing Apptainer

Apptainer can be cited using its former name Singularity.

The Singularity software may be cited using our Zenodo DOI 10.5281/zenodo.1310023:

Singularity Developers (2021) Singularity. 10.5281/zenodo.1310023 https://doi.org/10.5281/zenodo.1310023

This is an 'all versions' DOI for referencing Singularity in a manner that is not version-specific. You may wish to reference the particular version of Singularity used in your work. Zenodo creates a unique DOI for each release, and these can be found in the 'Versions' sidebar on the Zenodo record page.

Please also consider citing the original publication describing Singularity:

Kurtzer GM, Sochat V, Bauer MW (2017) Singularity: Scientific containers for mobility of compute. PLoS ONE 12(5): e0177459. https://doi.org/10.1371/journal.pone.0177459

License

Unless otherwise noted, this project is licensed under a 3-clause BSD license found in the license file.

Extension points exported contracts — how you extend this code

Operations (Interface)
Operations is an interface describing necessary operations to launch a container process. Some of them may be called wit [3 …
internal/pkg/runtime/engine/engine_linux.go
Driver (Interface)
Driver defines the image driver interface to register. [2 implementers]
pkg/image/driver.go
Bundle (Interface)
Bundle defines an OCI bundle interface to create/delete OCI bundles [2 implementers]
pkg/ocibundle/bundle.go
Callback (Interface)
Callback defines a plugin callback. Available callbacks are defined in pkg/plugin/callback.
pkg/plugin/plugin.go
EngineConfig (Interface)
EngineConfig is a generic interface to represent the implementations of an EngineConfig.
pkg/runtime/engine/config/config.go
EnvHandler (FuncType)
EnvHandler defines an environment handler type to set flag's values from environment variables
pkg/cmdline/env.go
ApptainerCmdResultOp (FuncType)
ApptainerCmdResultOp is a function type executed by ExpectExit to process and test execution result.
e2e/internal/e2e/apptainercmd.go
Service (Interface)
Service represents a remote service, accessible at Service.URI [1 implementers]
internal/pkg/remote/endpoint/service.go

Core symbols most depended-on inside this repo

WithArgs
called by 466
e2e/internal/e2e/apptainercmd.go
WithProfile
called by 466
e2e/internal/e2e/apptainercmd.go
ExpectExit
called by 466
e2e/internal/e2e/apptainercmd.go
RunApptainer
called by 466
e2e/internal/e2e/apptainercmd.go
WithCommand
called by 462
e2e/internal/e2e/apptainercmd.go
Debugf
called by 439
pkg/sylog/sylog.go
RegisterFlagForCmd
called by 296
pkg/cmdline/cmd.go
Fatalf
called by 249
pkg/sylog/sylog.go

Shape

Function 1,499
Method 1,182
Struct 283
FuncType 34
TypeAlias 31
Interface 12

Languages

Go100%
Python1%

Modules by API surface

pkg/runtime/engine/apptainer/config/config.go163 symbols
internal/pkg/sypgp/sypgp.go57 symbols
internal/pkg/runtime/launch/options.go57 symbols
internal/pkg/runtime/engine/apptainer/container_linux.go56 symbols
internal/pkg/util/fs/mount/mount_linux.go46 symbols
internal/pkg/util/fs/layout/manager.go40 symbols
internal/pkg/runtime/engine/apptainer/rpc/args.go38 symbols
e2e/internal/e2e/apptainercmd.go32 symbols
e2e/actions/actions.go32 symbols
internal/pkg/runtime/engine/config/starter/starter_linux.go31 symbols
e2e/imgbuild/imgbuild.go31 symbols
internal/pkg/util/fs/helper.go29 symbols

Dependencies from manifests, versioned

cyphar.com/go-pathrsv0.2.4 · 1×
github.com/AdaLogics/go-fuzz-headersv0.0.0-2024080614160 · 1×
github.com/BurntSushi/tomlv1.6.0 · 1×
github.com/Microsoft/go-winiov0.6.2 · 1×
github.com/Netflix/go-expectv0.0.0-2022010404335 · 1×
github.com/ProtonMail/go-cryptov1.4.1 · 1×
github.com/VividCortex/ewmav1.2.0 · 1×
github.com/acarl005/stripansiv0.0.0-2018011610285 · 1×
github.com/adigunhammedolalekan/registry-authv0.0.0-2020073012211 · 1×
github.com/alexflint/go-filemutexv1.3.0 · 1×
github.com/apex/logv1.9.0 · 1×
github.com/apptainer/container-key-clientv0.8.0 · 1×

For agents

$ claude mcp add apptainer \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact