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 --versionIf not installed:
python -m pip install --user pipx pipx ensurepath
-
A container daemon running:
- Docker:
docker info - Podman:
podman info
- Docker:
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file verti_osi-2.2.0.tar.gz.
File metadata
- Download URL: verti_osi-2.2.0.tar.gz
- Upload date:
- Size: 18.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b1f048ea43d3209b35582b447ef122c675811502bffbf56bb6a300440bda20c8
|
|
| MD5 |
1b6361bbad7c894b0192e4ab058eb946
|
|
| BLAKE2b-256 |
f635193b2d7a74df5cf22c001f7e3af6e03007b01b3206e1271f378f188e2a9e
|
File details
Details for the file verti_osi-2.2.0-py3-none-any.whl.
File metadata
- Download URL: verti_osi-2.2.0-py3-none-any.whl
- Upload date:
- Size: 26.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e85118e8672fa6387682f52d7f6b7da01b141c9a6d9eb30f5a0be2b8cb183c00
|
|
| MD5 |
f41246058e55de772e424081adf82b2e
|
|
| BLAKE2b-256 |
9f1ff9656b4394ed696043e3f130c93bea36ed99ac1d70cc410008039317ce5f
|