Skip to main content

A CLI tool for generating OCI-compliant container images for Python and Node.js projects.

Project description

Verti-OSI CLI Tool Documentation

Overview

Verti-OSI is a command-line tool designed to generate OCI-compliant container images. It allows users to create container images from a specified project source directory while offering various customization options such as selecting the container runtime daemon, output type, and execution of the generated image.

Supported Languages

Currently, verti-osi supports Python and Node.js projects. The CLI automatically detects the language package manager and generates the appropriate container image.

Prerequisites

To use verti-osi, ensure the following:

  • Python 3.7+ installed. Check with:
    python --version
    
  • PIPX installed. Check with:
    pipx --version
    
    If missing, install it via:
    python -m pip install --user pipx
    pipx ensurepath
    
  • A running container daemon (Docker or Podman).
    • Docker: Ensure the daemon is running:
      docker info
      
    • Podman: Ensure Podman is installed and running:
      podman info
      

Installation (via pipx)

To install verti-osi globally using pipx, run:

pipx install verti-osi

Usage

After installation, invoke the CLI tool using verti-osi. Below is the command structure and available options:

verti-osi --root-directory <path> \
          --source-directory <path> \
          --image-name <name> \
          --daemon <daemon-type> \
          --output <output-type> \
          --delete-generated-dockerfile <True/False> \
          --run-generated-image <True/False>

Command Parameters

  • --root-directory (default: .) - The root directory of the project.
  • --source-directory (default: .) - The directory containing the project’s source code.
  • --image-name (required) - The name of the image to be generated.
  • --daemon (default: docker) - The container runtime daemon to be used (docker or podman).
  • --output (default: '') - The output type for the generated image. Supports tar, registry push, and standard image generation.
  • --delete-generated-dockerfile (default: False) - If True, the generated Dockerfile will be deleted after image creation.
  • --run-generated-image (default: False) - If True, the generated container image will be executed immediately.

Automatic Language Detection

verti-osi automatically detects the programming language based on the project structure:

  • Python: If requirements.txt or pyproject.toml is found, the CLI generates a Python-based image.
  • Node.js: If package.json is detected, the CLI generates a Node.js-based image.

Example Usage

1. Generating a container image

verti-osi --root-directory . \
          --source-directory ./src \
          --image-name nodey-js-verti:v1-normal

2. Generating and pushing an image to a registry

verti-osi --root-directory . \
          --source-directory ./src \
          --image-name my-repo/nodey-js-verti:v1 \
          --output registry

3. Generating an image and deleting the Dockerfile

verti-osi --root-directory . \
          --source-directory ./src \
          --image-name nodey-js-verti:v1 \
          --delete-generated-dockerfile True

4. Generating an image and running it immediately

verti-osi --root-directory . \
          --source-directory ./src \
          --image-name nodey-js-verti:v1 \
          --run-generated-image True

Development

If you wish to contribute or modify the tool, follow these steps:

  1. Clone the repository:

    git clone https://github.com/your-repo/verti-osi.git
    cd verti-osi
    
  2. Install the package in development mode:

    pip install -e .
    
  3. Run the CLI tool:

    verti-osi --help
    

Uninstallation

To remove verti-osi, run:

pipx uninstall verti-osi

License

Verti-OSI is licensed under the MIT License.

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

verti_osi-1.3.0.tar.gz (11.9 kB view details)

Uploaded Source

Built Distribution

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

verti_osi-1.3.0-py3-none-any.whl (15.8 kB view details)

Uploaded Python 3

File details

Details for the file verti_osi-1.3.0.tar.gz.

File metadata

  • Download URL: verti_osi-1.3.0.tar.gz
  • Upload date:
  • Size: 11.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.1

File hashes

Hashes for verti_osi-1.3.0.tar.gz
Algorithm Hash digest
SHA256 afecc4ed1dea562efa6788faab3d26a623591abe3f2f50115d34699e5f98f0e2
MD5 6ebd9b121f24911a700841cc662a5f46
BLAKE2b-256 5cd4832e516d0e2d36b4a1a50328c051a0476ee71e9ff3818aceae9092308cb1

See more details on using hashes here.

File details

Details for the file verti_osi-1.3.0-py3-none-any.whl.

File metadata

  • Download URL: verti_osi-1.3.0-py3-none-any.whl
  • Upload date:
  • Size: 15.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.1

File hashes

Hashes for verti_osi-1.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5ee960ce536f41d508c14814358636abbc08802059f3ce5ff0f169ec14f1ff78
MD5 b061695ce76bafd9da49857995d29307
BLAKE2b-256 7d594519942f5129789b898ef9f88961c81f069b383030c95dcf9db5aabf693b

See more details on using hashes here.

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