- Visão geral do Jelina
- JelinaOS
- Materiais de referência
Compatibilidade e extensões do docker-compose
O JelinaOS oferece orquestração pronta para uso, com compatibilidade completa com a sintaxe docker-compose 2.x. Releases na nuvem ou interfaces locais definem a configuração, e o agente implanta automaticamente. A extensão de gestão declarativa de aplicações fora de contêineres (ProgramSet) traz a mesma abordagem de gestão por configuração aos programas tradicionais.
Execução da orquestração
Seção intitulada “Execução da orquestração”O arquivo é uma configuração declarativa definida em um Release ou pela interface local. O agente a sincroniza e implanta automaticamente. Comandos Docker locais permitem operações diárias sobre contêineres individuais; a orquestração de múltiplos serviços é centralizada no agente, sem ferramentas adicionais no dispositivo.
Compatibilidade com Compose
Seção intitulada “Compatibilidade com Compose”O suporte segue a especificação 2.x, permitindo migrar arquivos comuns dessa versão:
- Definições de serviços, redes, volumes, variáveis de ambiente, dependências e outras configurações usuais.
- Campos e comportamentos introduzidos nas versões 2.x.
- Campos novos de 3.x não são suportados; use sintaxe 2.x ao 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: - appAplicações fora de contêineres: gestão declarativa com ProgramSet
Seção intitulada “Aplicações fora de contêineres: gestão declarativa com ProgramSet”O campo industrial utiliza scripts, daemons e binários de terceiros de forma tradicional. O JelinaOS os inclui na gestão declarativa unificada, com campos correspondentes à semântica dos serviços do sistema, reduzindo o esforço de aprendizado e ampliando o controle.
Exemplo básico
Seção intitulada “Exemplo básico”programs: myapp: command: run.sh # Comando de inicialização running: true # Define se deve executar restart: always # Política de reinicialização environment: # Variáveis de ambiente MODE: production working_directory: . # Diretório de trabalho user: root # Usuário de execução pid_file: /var/run/myapp.pidCampos suportados
Seção intitulada “Campos suportados”| Campo | Semântica | Descrição |
|---|---|---|
command |
Comando de inicialização | Obrigatório; ponto de entrada do programa |
running |
Executar ou não | Padrão true |
restart |
Política de reinício | no / on-success / on-failure / on-abnormal / on-watchdog / on-abort / always |
environment |
Variáveis de ambiente | Pares chave-valor |
kill_signal |
Sinal de parada | Sinal enviado para interromper o programa |
working_directory |
Diretório de trabalho | Diretório de execução do programa |
type |
Tipo de serviço | simple / forking / oneshot / dbus / notify / idle |
user / group |
Identidade de execução | Executar com usuário/grupo especificado |
pid_file |
Arquivo PID | Registrar o PID do processo |
wants / requires |
Dependências | Dependência opcional / obrigatória |
before / after |
Ordem de inicialização | Iniciar antes/depois do serviço especificado |
conflicts |
Exclusão mútua | Incompatível com a execução simultânea do serviço especificado |
start_limit_interval_sec / start_limit_burst |
Limite de reinícios | Número máximo de reinícios em uma janela de tempo |
start_limit_action |
Ação ao exceder o limite | none / reboot / poweroff etc. |
remain_after_exit |
Manter estado após a saída | Evitar inicialização repetida |
exec_start_pre / exec_start_post |
Comandos anteriores/posteriores | Executar antes/depois da inicialização |
Recursos avançados de unidades de serviço
Seção intitulada “Recursos avançados de unidades de serviço”O ProgramSet também aceita configurações avançadas de unidades do sistema, como dependências no boot e verificações de condições:
programs: myapp: command: run.sh restart: always Install: WantedBy: multi-user.target # Inicialização automática com o sistema Unit: ConditionPathExists: /data/app/config.json # Verificação de condiçõesExemplo: orquestração híbrida
Seção intitulada “Exemplo: orquestração híbrida”version: "2.4"
services: # Aplicação em contêiner web: image: myweb:1.0.0 restart: always
programs: # Programa de aquisição tradicional collector: command: collector --config /data/collector.conf restart: on-failure after: webAplicações em contêineres e programas nativos trabalham no mesmo sistema de orquestração, com dependências, ordem de inicialização e políticas de reinício gerenciadas em conjunto. Esse é um diferencial da gestão de aplicações do JelinaOS.