Observed since 20 Oct, 17:36 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
Generate Dockerfiles and container build workflows from Conda environments
Turn conda environments into optimized container images for development and HPC deployment.
Absconda bridges the gap between conda's reproducible environments and container-based workflows. Define your scientific computing environment once with conda, then deploy it anywhere—Docker, Singularity/Apptainer, HPC clusters—with production-ready optimizations.
🚀 Multi-Stage Builds - Automatic optimization that reduces image sizes by 40-60%
🔐 Policy Validation - Enforce security and compliance rules organization-wide
🏗️ Remote Builders - Offload builds to cloud instances with automatic provisioning
🧪 HPC Integration - First-class Singularity support with module files and wrappers
📦 R + renv Support - Combine conda environments with R package management
🎯 Flexible Deployment - Multiple modes: full-env, tarball, requirements, export-explicit
🔧 Custom Templates - Jinja2-based system for advanced customization
# Install from PyPI
pip install absconda
# Or with pipx (recommended)
pipx install absconda
# Verify installation
absconda --version
1. Create a conda environment file:
# environment.yaml
name: my-analysis
channels:
- conda-forge
- bioconda
dependencies:
- python=3.11
- numpy=1.26
- pandas=2.1
- scikit-learn=1.3
2. Build a Docker image:
absconda build \
--file environment.yaml \
--repository ghcr.io/myorg/my-analysis \
--tag latest \
--push
3. Use the image:
docker run --rm ghcr.io/myorg/my-analysis:latest python -c "import numpy; print(numpy.__version__)"
For HPC with Singularity:
# Build Docker image and convert to Singularity
absconda build \
--file environment.yaml \
--repository ghcr.io/myorg/my-analysis \
--tag latest \
--push
# Convert to Singularity
absconda singularity \
--image ghcr.io/myorg/my-analysis:latest \
--output my-analysis.sif
# Generate HPC module
absconda module \
--image my-analysis.sif \
--module-path /apps/modules/my-analysis/1.0
See the Quick Start Guide for a complete walkthrough.
Complete working examples with explanations:
Scientific computing has conflicting requirements:
Absconda solves this by:
| Feature | Absconda | repo2docker | docker-conda | Manual Dockerfile |
|---|---|---|---|---|
| Multi-stage optimization | ✅ Automatic | ❌ No | ❌ No | ⚠️ Manual |
| Singularity integration | ✅ First-class | ❌ No | ❌ No | ⚠️ Manual |
| HPC modules | ✅ Built-in | ❌ No | ❌ No | ⚠️ Manual |
| Policy enforcement | ✅ Yes | ❌ No | ❌ No | ❌ No |
| Remote builders | ✅ Yes | ❌ No | ❌ No | ❌ No |
| R + renv support | ✅ Yes | ⚠️ Limited | ❌ No | ⚠️ Manual |
| Custom templates | ✅ Jinja2 | ❌ No | ❌ No | ✅ Full control |
Complete workflow for deploying to NCI Gadi HPC:
# 1. Build optimized Docker image (locally or on GCP)
absconda build \
--file rnaseq-env.yaml \
--repository ghcr.io/lab/rnaseq \
--tag v1.0 \
--remote-builder gcp-builder \
--push
# 2. Convert to Singularity on HPC
ssh gadi.nci.org.au
singularity pull rnaseq.sif docker://ghcr.io/lab/rnaseq:v1.0
# 3. Generate module file
absconda module \
--image /apps/rnaseq/v1.0/rnaseq.sif \
--module-path /apps/Modules/modulefiles/rnaseq/1.0 \
--wrapper-dir /apps/rnaseq/v1.0/wrappers
# 4. Use in PBS job
module load rnaseq/1.0
python analysis.py # Uses containerized environment transparently
The result: reproducible, optimized, compliant environments deployed consistently from development through production.
Absconda is production-ready and actively maintained. It powers scientific computing workflows for research teams at the Garvan Institute and beyond.
Current version: 0.1.0
Python support: 3.10, 3.11, 3.12
License: MIT
Contributions welcome! See Contributing Guide.
Areas needing help:
Developed at the Garvan Institute of Medical Research by the Swarbrick Lab.
Built with:
MIT License - see LICENSE for details.
Ready to get started? → Installation Guide
Have questions? → GitHub Discussions
Download counts and popularity will appear here as the collector receives them.
| Version | Published | Direct dependencies | Open version |
|---|---|---|---|
| 0.1.0 | 3 Dec 2025 | 9 |
This describes our collected data; it is not a security assessment.
Observed since 20 Oct, 17:36 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package:7609e8f8a9e0f1452da50b16e63725b8d5a7d9d2b92a3f6d4d33ef4b3e075653