Skip to main content

Unified container management for Apptainer and Docker

Project description

scitex-container

SciTeX

Unified container management for Apptainer and Docker

PyPI version Documentation CI License: AGPL-3.0

Full Documentation · pip install scitex-container


Installation

Requires Python >= 3.10.

pip install scitex-container

With MCP server support (for AI agent integration):

pip install scitex-container[mcp]

Full installation:

pip install scitex-container[all]

CLI Quickstart

# Unified status dashboard
scitex-container status

# Build Apptainer SIF from definition file
scitex-container build --def-name scitex-final

# Version management
scitex-container list
scitex-container switch 2.19.5
scitex-container rollback

# Show all commands
scitex-container --help-recursive
Sandbox Operations
scitex-container sandbox create --sif scitex-final.sif
scitex-container sandbox maintain --sandbox scitex-sandbox/
Host Package Management
scitex-container host install          # Install TeX Live + ImageMagick
scitex-container host check            # Verify host packages
scitex-container host mounts           # Show configured bind mounts
Docker Operations
scitex-container docker rebuild        # Rebuild Compose services
scitex-container docker restart        # Restart services
Verification & Reproducibility
scitex-container verify                # Verify SIF integrity against lock files
scitex-container env-snapshot          # Capture environment reproducibility snapshot
scitex-container env-snapshot --json   # JSON output for Clew integration

Python API

import scitex_container as sc

# Apptainer container management
sc.apptainer.build(def_name="scitex-final", sandbox=True)
sc.apptainer.list_versions(containers_dir="/opt/containers")
sc.apptainer.switch_version("2.19.5", containers_dir="/opt/containers")
sc.apptainer.rollback(containers_dir="/opt/containers")

# Host package management
sc.host.check_packages()

# Docker operations
sc.docker.rebuild(env="prod")
sc.docker.restart(env="prod")

# Environment reproducibility snapshot (Clew integration point)
snapshot = sc.env_snapshot()
Verification API
# Verify container integrity
result = sc.apptainer.verify(sif_path="/opt/containers/scitex-final.sif")
# Returns: {sif, def_origin, pip_lock, dpkg_lock, overall}

# Command builder for scitex-cloud terminal integration
args = sc.apptainer.build_exec_args(
    container_path="/opt/containers/scitex-final.sif",
    username="user01",
    host_user_dir=Path("/data/users/user01"),
    host_project_dir=Path("/data/projects/proj01"),
    project_slug="proj01",
    texlive_prefix="/usr",
)

MCP Server

AI Agent Integration

scitex-container exposes an MCP server so AI agents (Claude, etc.) can manage containers autonomously.

# Start MCP server
scitex-container-mcp

# Install to Claude Code
scitex-container mcp install
Tool Description
status Unified container/host status dashboard
build Build SIF from definition file
list List available container versions
switch Switch active container version
rollback Roll back to previous version
sandbox_create Create writable sandbox from SIF
docker_rebuild Rebuild Docker Compose services
host_install Install host-side packages
env_snapshot Capture reproducibility snapshot
verify Verify SIF integrity against lock files

AGPL-3.0 — because research infrastructure deserves the same freedoms as the software it runs on.

SciTeX

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

scitex_container-0.1.2.tar.gz (509.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

scitex_container-0.1.2-py3-none-any.whl (63.9 kB view details)

Uploaded Python 3

File details

Details for the file scitex_container-0.1.2.tar.gz.

File metadata

  • Download URL: scitex_container-0.1.2.tar.gz
  • Upload date:
  • Size: 509.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for scitex_container-0.1.2.tar.gz
Algorithm Hash digest
SHA256 83b3022cb9812bf62cbd1bbb9c077635de293c59b351e44593e984af82594714
MD5 91193d81c476f65fc6b82964ec9f9964
BLAKE2b-256 0e16d0ba6dad06b77ec54c61ef83994b16ad4a71e5928bf8ea1be16ad9768f0d

See more details on using hashes here.

Provenance

The following attestation bundles were made for scitex_container-0.1.2.tar.gz:

Publisher: publish-pypi.yml on ywatanabe1989/scitex-container

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file scitex_container-0.1.2-py3-none-any.whl.

File metadata

File hashes

Hashes for scitex_container-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 83a85b9210506a12de8c71887e11e2ef7431af04b4b756f872b65cce60ec5d85
MD5 6cf2e70bde6e2d05fa12b931e2c1b1a4
BLAKE2b-256 1bc7b89c8edd90cdf4fde80e9eb039fec4869065d674c570aa58245594d17828

See more details on using hashes here.

Provenance

The following attestation bundles were made for scitex_container-0.1.2-py3-none-any.whl:

Publisher: publish-pypi.yml on ywatanabe1989/scitex-container

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page