- Visión general de Jelina
- JelinaOS
- Material de referencia
Compatibilidad y extensiones de docker-compose
JelinaOS incluye orquestación de contenedores lista para utilizar, con compatibilidad completa con la sintaxis docker-compose 2.x. La configuración se administra mediante versiones en la nube o interfaces locales, y el agente la implementa automáticamente. Además, amplía este modelo con administración declarativa de aplicaciones sin contenedores (ProgramSet) para gestionar también programas tradicionales mediante configuración.
Ejecución de la orquestación
Sección titulada «Ejecución de la orquestación»El archivo de orquestación es una configuración declarativa definida en una Release de la nube o mediante la interfaz de administración local. El agente la sincroniza y la implementa automáticamente. Los comandos de Docker del dispositivo permiten operaciones cotidianas sobre contenedores individuales; el agente ejecuta la orquestación de varios servicios sin instalar herramientas adicionales.
Compatibilidad con Compose
Sección titulada «Compatibilidad con Compose»La implementación se basa en la especificación 2.x para facilitar la migración de archivos habituales:
- Admite definiciones de servicios, redes, volúmenes, variables de entorno, dependencias y otras opciones comunes;
- Es compatible con los campos y comportamientos introducidos en 2.x;
- Los campos nuevos de 3.x no están admitidos; utiliza sintaxis 2.x al migrar.
version: "2.4"
services: app: image: myapp:1.0.0 restart: always environment: MODE: production ports: - "8080:80"
worker: image: myworker:1.0.0 restart: on-failure depends_on: - appAplicaciones sin contenedores: administración declarativa con ProgramSet
Sección titulada «Aplicaciones sin contenedores: administración declarativa con ProgramSet»Las instalaciones industriales utilizan numerosos scripts, demonios y binarios de terceros. JelinaOS los integra en una administración declarativa unificada cuyos campos corresponden directamente a la semántica de los servicios del sistema, con una curva de aprendizaje reducida y amplias funciones de gestión.
Ejemplo básico
Sección titulada «Ejemplo básico»programs: myapp: command: run.sh # Comando de inicio running: true # Indica si debe ejecutarse restart: always # Política de reinicio environment: # Variables de entorno MODE: production working_directory: . # Directorio de trabajo user: root # Usuario de ejecución pid_file: /var/run/myapp.pidCampos admitidos
Sección titulada «Campos admitidos»| Campo | Semántica | Descripción |
|---|---|---|
command |
Comando de inicio | Obligatorio; punto de entrada del programa |
running |
Ejecutar o no | Valor predeterminado true |
restart |
Política de reinicio | no / on-success / on-failure / on-abnormal / on-watchdog / on-abort / always |
environment |
Variables de entorno | Pares de clave y valor |
kill_signal |
Señal de parada | Señal enviada al detener el programa |
working_directory |
Directorio de trabajo | Directorio de ejecución |
type |
Tipo de servicio | simple / forking / oneshot / dbus / notify / idle |
user / group |
Identidad de ejecución | Usuario o grupo con el que se ejecuta |
pid_file |
Archivo PID | Registra el identificador del proceso |
wants / requires |
Dependencias | Dependencias débiles o fuertes |
before / after |
Orden de inicio | Inicio antes o después del servicio indicado |
conflicts |
Exclusión mutua | Incompatibilidad con el servicio indicado |
start_limit_interval_sec / start_limit_burst |
Límite de reinicios | Máximo de reinicios dentro de un intervalo |
start_limit_action |
Acción al superar el límite | none, reboot, poweroff, etc. |
remain_after_exit |
Mantener el estado tras la salida | Evita inicios repetidos |
exec_start_pre / exec_start_post |
Comandos previos y posteriores | Comandos ejecutados antes o después del inicio |
Ampliaciones de unidades de servicio
Sección titulada «Ampliaciones de unidades de servicio»ProgramSet admite también configuración avanzada a nivel de unidad, como dependencias de arranque y condiciones:
programs: myapp: command: run.sh restart: always Install: WantedBy: multi-user.target # Iniciar al arrancar Unit: ConditionPathExists: /data/app/config.json # Comprobación de condiciónEjemplo: orquestación híbrida
Sección titulada «Ejemplo: orquestación híbrida»version: "2.4"
services: # Carga de trabajo en contenedor web: image: myweb:1.0.0 restart: always
programs: # Programa de adquisición tradicional collector: command: collector --config /data/collector.conf restart: on-failure after: webLas aplicaciones en contenedores y los programas nativos trabajan en el mismo sistema de orquestación, con dependencias, orden de inicio y políticas de reinicio administrados de forma unificada. Esta es una de las capacidades distintivas de JelinaOS.