Skip to content

MolCrafts/devcontainers

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MolCrafts DevContainers

A collection of devcontainer features and pre-built images for molecular science development, providing ready-to-use development environments for Python, Rust, visualization, and machine learning workflows.

Quick Start

Using Pre-built Images

The easiest way to get started is using our pre-built images:

CPU Image:

{
  "image": "ghcr.io/molcrafts/devcontainers/images/molcrafts-cpu:latest"
}

CUDA Image (requires NVIDIA GPU):

{
  "image": "ghcr.io/molcrafts/devcontainers/images/molcrafts-cuda:latest",
  "runArgs": ["--gpus", "all"]
}

Using Individual Features

Compose your own environment by selecting specific features. Features require appropriate base images (Python, Rust, etc.):

{
  "image": "mcr.microsoft.com/devcontainers/python:3.11",
  "features": {
    "ghcr.io/devcontainers/features/anaconda:1": {},
    "ghcr.io/molcrafts/devcontainers/molpy:latest": {},
    "ghcr.io/molcrafts/devcontainers/molnex:latest": {
      "backend": "cpu"
    }
  }
}

Note: MolCrafts features do not install Python/Node.js/Rust themselves. Use appropriate base images or add required devcontainer features (anaconda, node, rust) first.

Repository Structure

.
├── features/
│   ├── src/              # Feature definitions
│   │   ├── molpy/        # Python development tools
│   │   ├── molrs/        # Rust toolchain + wasm-pack
│   │   ├── molvis/       # Visualization tools
│   │   ├── molexp/       # Task graph framework
│   │   └── molnex/       # PyTorch (CPU/CUDA)
│   └── test/             # Feature tests
├── images/
│   ├── molcrafts-cpu/    # Complete CPU environment
│   └── molcrafts-cuda/   # Complete CUDA environment
└── .github/workflows/    # CI/CD pipelines

Available Components

Features

Individual features that can be combined. See features/README.md for details:

  • molpy: Python development environment (requires Python base image or anaconda feature)
  • molrs: Rust development with WebAssembly support (requires rust feature)
  • molvis: Visualization tools (requires Python + Node.js)
  • molexp: Task graph framework (requires Python + Node.js)
  • molnex: ML training with PyTorch CPU/CUDA (requires Python, installs PyTorch)

Images

Pre-built complete environments. See images/README.md for details:

  • molcrafts-cpu: All features with CPU-only PyTorch
  • molcrafts-cuda: All features with CUDA-enabled PyTorch

Development

Testing Features

# Test all features
devcontainer features test ./features

# Test specific feature
devcontainer features test ./features -f molnex

Testing Images

# Test image builds
cd images/molcrafts-cpu
devcontainer build --workspace-folder ../.. --image-name test:local

Publishing

All components are automatically published to GitHub Container Registry when changes are pushed to the master branch:

  • Features: ghcr.io/molcrafts/devcontainers/<feature-name>:latest
  • Images: ghcr.io/molcrafts/devcontainers/images/<image-name>:latest

GitHub Actions Workflows

This repository uses 6 separate CI/CD workflows:

  1. feature-test.yaml: Tests all features
  2. feature-validate.yml: Validates feature schemas
  3. feature-release.yaml: Publishes features to ghcr.io
  4. image-test.yaml: Tests image builds
  5. image-validate.yml: Validates image configurations
  6. image-release.yaml: Builds and publishes images to ghcr.io

Documentation

License

See LICENSE file for details.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Languages