Skip to content

Enhance Multi-architecture Image Support #33

@Virviil

Description

@Virviil

Description

Improve existing partial multi-arch support with platform selection and better manifest handling, following Docker/skopeo patterns.

Current State

The tool can be run multiple times for different architectures, but lacks proper platform selection and multi-arch manifest handling.

Tasks

  • Add --platform flag to select specific platform (e.g., --platform linux/amd64, --platform linux/arm64)
  • Improve manifest parsing for multi-arch images
  • Add platform detection and listing capabilities
  • Better error handling for missing platforms
  • Follow Docker/skopeo patterns for architecture selection
  • Add tests for multi-arch scenarios

Skills Required

  • Rust programming
  • OCI spec knowledge, especially multi-arch manifests
  • CLI design and argument parsing
  • Container ecosystem understanding (Docker/skopeo patterns)

Technical Details

Platform Selection

Follow Docker's --platform flag pattern:

oci2git --platform linux/amd64 nginx:latest
oci2git --platform linux/arm64 nginx:latest

Manifest Handling

  • Parse multi-arch manifest lists
  • Handle platform-specific image selection
  • Provide clear error messages for unavailable platforms

Reference Implementation

Study how Docker and skopeo handle platform selection:

  • Docker: --platform flag
  • Skopeo: --override-arch, --override-os, --override-variant

Files to Modify

  • src/sources/ - Container engine integration
  • CLI argument parsing - Add platform flag
  • Manifest handling code
  • Integration tests

Expected Impact

Users can easily work with multi-arch images without manual platform detection or multiple tool runs.

This is an advanced task perfect for Hacktoberfest! 🎃

Hacktoberfest 2025 🍂

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requesthacktoberfestIssues perfect for Hacktoberfest contributions

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions