Unified container management for Apptainer and Docker
Project description
scitex-container
Unified container management for Apptainer and Docker
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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
83b3022cb9812bf62cbd1bbb9c077635de293c59b351e44593e984af82594714
|
|
| MD5 |
91193d81c476f65fc6b82964ec9f9964
|
|
| BLAKE2b-256 |
0e16d0ba6dad06b77ec54c61ef83994b16ad4a71e5928bf8ea1be16ad9768f0d
|
Provenance
The following attestation bundles were made for scitex_container-0.1.2.tar.gz:
Publisher:
publish-pypi.yml on ywatanabe1989/scitex-container
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
scitex_container-0.1.2.tar.gz -
Subject digest:
83b3022cb9812bf62cbd1bbb9c077635de293c59b351e44593e984af82594714 - Sigstore transparency entry: 1474615564
- Sigstore integration time:
-
Permalink:
ywatanabe1989/scitex-container@17e7d596860f9ec3d6cc435b4c4c482509b8f5bd -
Branch / Tag:
refs/tags/v0.1.2 - Owner: https://github.com/ywatanabe1989
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@17e7d596860f9ec3d6cc435b4c4c482509b8f5bd -
Trigger Event:
release
-
Statement type:
File details
Details for the file scitex_container-0.1.2-py3-none-any.whl.
File metadata
- Download URL: scitex_container-0.1.2-py3-none-any.whl
- Upload date:
- Size: 63.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
83a85b9210506a12de8c71887e11e2ef7431af04b4b756f872b65cce60ec5d85
|
|
| MD5 |
6cf2e70bde6e2d05fa12b931e2c1b1a4
|
|
| BLAKE2b-256 |
1bc7b89c8edd90cdf4fde80e9eb039fec4869065d674c570aa58245594d17828
|
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
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
scitex_container-0.1.2-py3-none-any.whl -
Subject digest:
83a85b9210506a12de8c71887e11e2ef7431af04b4b756f872b65cce60ec5d85 - Sigstore transparency entry: 1474615601
- Sigstore integration time:
-
Permalink:
ywatanabe1989/scitex-container@17e7d596860f9ec3d6cc435b4c4c482509b8f5bd -
Branch / Tag:
refs/tags/v0.1.2 - Owner: https://github.com/ywatanabe1989
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@17e7d596860f9ec3d6cc435b4c4c482509b8f5bd -
Trigger Event:
release
-
Statement type: