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.2.1.tar.gz (11.8 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.2.1-py3-none-any.whl (15.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: verti_osi-1.2.1.tar.gz
  • Upload date:
  • Size: 11.8 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.2.1.tar.gz
Algorithm Hash digest
SHA256 a0251bb98b5b10194ae2783bc9c91245bef77d490d55df62000269137abed830
MD5 a786c6522c368de625acebbe3cffa19c
BLAKE2b-256 f1fafa7daf9393cff99c4f67189bd7b1350d0b74fce3b06ff2e92cc90a00477a

See more details on using hashes here.

File details

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

File metadata

  • Download URL: verti_osi-1.2.1-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.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 d18c6e7637057dac2f4cc7920241cd2f916aaab789aa047a5c627537094336a6
MD5 7a27c314bbc46ee84fa85e68bffbfde7
BLAKE2b-256 5caa0a9de866302e5cdedaf2ca2f6b8a83c2c994051c985a4535719d7db3fe1a

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