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 for generating OCI-compliant container images and Dockerfiles based on your application source code.
It supports flexible configurations via CLI parameters or a YAML file.

You can:

  • Generate a Dockerfile
  • Build a container image
  • Supply custom build-time and run-time base images
  • Use custom build commands, pre-build commands, and environment variables
  • Pull code from a remote repository
  • Support multiple platforms (e.g., linux/amd64, linux/arm64)

Supported Languages

  • Python (detects requirements.txt / pyproject.toml)
  • Node.js (detects package.json)

Prerequisites

Make sure you have:

  • Python 3.7+ installed:

    python --version
    
  • pipx installed:

    pipx --version
    

    If not installed:

    python -m pip install --user pipx
    pipx ensurepath
    
  • A container daemon running:

    • Docker:
      docker info
      
    • Podman:
      podman info
      

Installation

Install Verti-OSI globally with pipx:

pipx install verti-osi

Usage

After installing, invoke the CLI tool using:

verti-osi

Verti-OSI has two main commands:

Command Description
dockerfile Generate a Dockerfile only
image Build a container image (can also generate the Dockerfile internally)

Command Reference

Generate an Image

verti-osi image [OPTIONS]

Key CLI options:

Option Description
--file-dir Path to verti-osi.yaml config file
--root-directory Project's root directory (default: .)
--source-directory Source code directory (default: .)
--image-name Name of the generated image
--build-image Base image to use during build
--run-time-image Base image for runtime
--platforms Comma-separated build platforms
--repository-url Git repository URL
--repository-branch Git repository branch
--env-vars Environment variables for all stages
--env-vars-rt Runtime-specific environment variables
--env-vars-bt Build-time-specific environment variables
--pre-build-commands Commands before build
--build-commands Build commands
--output Image output: tar, registry, standard
--delete-generated-dockerfile Delete Dockerfile after build (True/False)
--run-generated-image Run image after build (True/False)
--port Port to expose (default: 8080)
--daemon Container daemon (docker or podman)

Generate a Dockerfile

verti-osi dockerfile [OPTIONS]

Key CLI options:

Same as image command, but without:

  • --platforms
  • --output
  • --run-generated-image

Configuration via YAML

You can define all parameters using a verti-osi.yaml config file.

Then invoke:

verti-osi <image | dockerfile> --file-dir <path-to-directory>

Example verti-osi.yaml

image-name: verti-node-app:v1
source-directory: ./src
root-directory: .
delete-generated-dockerfile: true
daemon: docker
output-type: tar
platform:
  - linux/amd64
  - linux/arm64
pre-build:
  - echo "Running pre-build steps"
build:
  - npm run build
env-vars:
  - name: API_KEY
    value: abc123
    type: both
  - name: DEBUG
    value: true
    type: runtime
port: 8080
remote-source-repository:
  git:
    url: https://github.com/example/project
    branch: main
images:
  build: node:20-slim
  run-time: node:20-alpine

Examples

1. Build and Push an Image to Registry

verti-osi image --root-directory . \
                --source-directory ./src \
                --image-name myorg/myapp:v1 \
                --output registry

2. Generate Dockerfile Only

verti-osi dockerfile --root-directory . \
                     --source-directory ./src \
                     --output-directory ./dockerfiles

3. Full Flow (YAML + Build + Push + Clean Dockerfile)

verti-osi image --file-dir ./configs \
                --output registry \
                --delete-generated-dockerfile True

Features Summary

✅ Automatic Language Detection
✅ Custom Build & Run-time Images
✅ Pre-Build and Build Commands
✅ Pull Source from Git Repositories
✅ Multi-Platform Build Support
✅ Dockerfile Only Generation
✅ Docker or Podman Support
✅ Configurable via CLI or YAML


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-2.4.0.tar.gz (21.3 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-2.4.0-py3-none-any.whl (30.3 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for verti_osi-2.4.0.tar.gz
Algorithm Hash digest
SHA256 a5dedd847ce12845429a2fe53c87328c4a9603cd4aa6e1d8bd6cc337dc918fb6
MD5 2a5691d1a02fb68ed94068f427134432
BLAKE2b-256 19820533dcdf23f37254aa07047b6875cd6b67eeda8bdc5753c90c3d0c32d857

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for verti_osi-2.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1efd1a915f0f7618d52fda5c8099bb5cc532ab44226651fb3a4c03f48d195a24
MD5 69680d0597a606d4249d5a6d592cbab0
BLAKE2b-256 19b3000246e7a70f3fb6258c851b097a3fba0b7d23c641fea205cdbf8d8b62b4

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