Skip to main content

miniogre: generate Dockerfile, requirements.txt, and SBOM from project directory

Project description

Miniogre

Miniogre is a command-line application that analyzes a Python project codebase and README file to automatically generate a Dockerfile, requirements.txt file, and SBOM files. This tool expedites the process of dockerizing any Python application.

How it Works

Upon running the application, it carries out the following steps:

  • The project directory is scrutinized to identify the primary code language.
  • The README file is located and read.
  • GPT-4 language model is used to predict the application dependencies and generate content for the requirements.txt file based on the README contents.
  • The requirements.txt, Dockerfile, and sbom.json files are created.
  • A Docker image of the application is built.
  • An ogre container is spun up.

Two main commands can be run, with the miniogre/main.py file serving as the entry point.

  • run: Executes a series of actions, including configuring directories and files (bashrc, Dockerfile), generating requirements, building a Docker image, and spinning up a container.
  • readme: Constructs a new README.md file that mirrors the operations observed within the source code.

For more in-depth execution details, refer to miniogre/main.py,miniogre/actions.py, and miniogre/config.py.

Requirements

To use miniogre effectively, ensure the following are installed:

  • Python 3: Miniogre is developed in Python. If it's not already installed, get Python here.
  • Docker: Docker is a platform used to eliminate "works on my machine" problems when collaborating on code with co-workers. If it's not already installed, get Docker here.
  • pip or pipx: These are python package installers used to install miniogre. If they are not already installed, get pipx here or pip here.

Usage

After installation, go inside the project folder and run:

miniogre run

This will analyze the project, generate ogre_dir/Dockerfile, ogre_dir/requirements.txt, and ogre_dir/sbom.json and build a Docker image.

There are other commands:

  • readme: Analyzes the source code to generate a new README.md file that is compatible with what actually happens in the source code.

Installation

Miniogre can be installed either by using pip or pipx:

  • pip install miniogre
  • pipx install miniogre

Contributing

Contributions to improve this resource are more than welcome. For inquiries, contact the maintainers at contact@ogre.run.

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

miniogre-0.1.0.tar.gz (13.3 kB view details)

Uploaded Source

Built Distribution

miniogre-0.1.0-py3-none-any.whl (14.5 kB view details)

Uploaded Python 3

File details

Details for the file miniogre-0.1.0.tar.gz.

File metadata

  • Download URL: miniogre-0.1.0.tar.gz
  • Upload date:
  • Size: 13.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.9.18

File hashes

Hashes for miniogre-0.1.0.tar.gz
Algorithm Hash digest
SHA256 741291ba10deed84c1fa112d1b88c33348c4b9848b049b50c9abc5adf8faba5d
MD5 1d9c28fd94a4f4837998bea2b0fd1d9c
BLAKE2b-256 a96b1fae6e7cd49ead61482b1fcfb4f57452b9ce70b1d02d3b8cdaf1b10cf94c

See more details on using hashes here.

File details

Details for the file miniogre-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: miniogre-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 14.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.9.18

File hashes

Hashes for miniogre-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9d95ed5551988450bea906459b6a049b20b11ac6588dcf017308ca242b4022f8
MD5 ee79c552fbf67a539c8f6d29f5dedb36
BLAKE2b-256 fbe880010728181c0360c906f2f716b16d09bcac8d8da19cd2a39aebab795a92

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page