Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Okra è uno script leggero in Bash per orchestrare applicazioni multi-container con Docker. Nasce come alternativa minimale a strumenti come Docker Compose, con un'interfaccia semplice da riga di comando

License

Notifications You must be signed in to change notification settings

Mantineo-Massimo/Orka

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Okra - Simple Bash Container Orchestrator

Language License: MIT Status Interface Manages

EN: Okra is a lightweight Bash-based orchestrator for managing multi-container Docker applications. It provides a minimal, educational alternative to tools like Docker Compose, focused on CLI-based simplicity.
IT: Okra è uno script leggero in Bash per orchestrare applicazioni multi-container con Docker. Nasce come alternativa minimale e didattica a strumenti come Docker Compose, con un'interfaccia semplice da riga di comando.


Funzionalità / Features

  • Gestione Applicazioniapp_up e app_down per avviare/arrestare l’intera app da un file .def.
  • Gestione Immagini – build, pull e push di immagini Docker.
  • Ciclo di Vita Container – avvio, arresto, logs, e listing dei container.
  • Risorse Docker – creazione e gestione reti e volumi.
  • Snapshot & Migrazione – snapshot "a caldo" e simulazione migrazione "a freddo".
  • Interfaccia Utente Intuitiva – menu interattivo testuale per guidare l’utente.

Struttura del Progetto / Project Structure

Okra/
├── okra.sh                   # Main entrypoint
├── lib/                      # Modular Bash libraries
│   ├── advanced.sh           # Snapshot & migration
│   ├── app_manager.sh        # High-level orchestration logic
│   ├── image.sh              # Image build and handling
│   ├── lifecycle.sh          # Container lifecycle ops
│   ├── registry.sh           # Pull/Push from registry
│   ├── resources.sh          # Networks & volumes
│   └── ui.sh                 # CLI and user interaction
├── example.def               # Sample project definition file
├── .gitignore
└── README.md

Come Iniziare / Getting Started

Prerequisiti / Prerequisites

Assicurati che Docker sia installato e in esecuzione.
Make sure Docker is installed and running.

docker --version

▶Esecuzione / Run

  1. Rendi lo script eseguibile / Make it executable:

    chmod +x okra.sh
  2. Avvia Okra:

    ./okra.sh
  3. Segui il menu:

    • Opzione 1: Imposta il file di progetto (es. example.def)
    • Opzione 2: Avvia l’applicazione

Il File di Progetto .def

EN: The .def project file defines your entire containerized setup using a simple, delimited syntax.
IT: Il file .def definisce l’applicazione containerizzata usando una sintassi semplice e delimitata.

Sintassi / Syntax

network;[network_name]
service;[name];[image];[container];[build_ctx];[ports];[env_file];[restart];[network]

Esempio / Example: example.def

# --- RETI / NETWORKS ---
network;okra-net

# --- SERVIZI / SERVICES ---

# Web Server Nginx
service;webserver;nginx:latest;okra-nginx;;8080:80;;always;okra-net

# API Custom da sorgente locale
service;api;my-api:1.0;okra-api;./my_api_src;;./api.env;on-failure;okra-net

Descrizione Script / Script Descriptions

File Descrizione
okra.sh Entry point principale, gestisce il menu CLI
lib/ui.sh Output interattivo colorato, gestione input utente
lib/lifecycle.sh Comandi base Docker (run, stop, logs, etc.)
lib/app_manager.sh Avvio/arresto applicazioni (funzioni app_up, app_down)
lib/resources.sh Gestione reti e volumi Docker
lib/image.sh Build e gestione immagini Docker
lib/registry.sh Funzioni docker pull e push verso registry
lib/advanced.sh Snapshot runtime e simulazioni di migrazione

Licenza / License

Questo progetto è rilasciato sotto licenza MIT.
This project is licensed under the MIT License.

About

Okra è uno script leggero in Bash per orchestrare applicazioni multi-container con Docker. Nasce come alternativa minimale a strumenti come Docker Compose, con un'interfaccia semplice da riga di comando

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages