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.
- Gestione Applicazioni –
app_upeapp_downper 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.
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
Assicurati che Docker sia installato e in esecuzione.
Make sure Docker is installed and running.
docker --version-
Rendi lo script eseguibile / Make it executable:
chmod +x okra.sh
-
Avvia Okra:
./okra.sh
-
Segui il menu:
- Opzione 1: Imposta il file di progetto (es.
example.def) - Opzione 2: Avvia l’applicazione
- Opzione 1: Imposta il file di progetto (es.
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.
network;[network_name]
service;[name];[image];[container];[build_ctx];[ports];[env_file];[restart];[network]
# --- 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| 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 |
Questo progetto è rilasciato sotto licenza MIT.
This project is licensed under the MIT License.