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.7.6.tar.gz (16.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.7.6-py3-none-any.whl (24.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: verti_osi-1.7.6.tar.gz
  • Upload date:
  • Size: 16.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.7.6.tar.gz
Algorithm Hash digest
SHA256 155b78b0ca77974a2d401abfbde19f92f39862b162dd488c38f5d5fbd8107033
MD5 99a52d36521854c492194ceae6556a10
BLAKE2b-256 44848c6f5c767d56839fec5ef88c47ba710913b47fad72de91cfccb632ae080d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: verti_osi-1.7.6-py3-none-any.whl
  • Upload date:
  • Size: 24.7 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.7.6-py3-none-any.whl
Algorithm Hash digest
SHA256 34c387ddba5b1be166cd9bd2d2dde1f7ec1e0645720b8fba88199f3df6285dd2
MD5 ca35b7796f6e7f60cf15dd442b77335c
BLAKE2b-256 2348fefa5d8e62e3eb678fd3f6fcf66880ea8d8a62d3efd0906b6e2c6167653b

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