Pular para o conteúdo
JelinaJelina DocumentationDocumentação técnica
Voltar ao site oficial

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.

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.

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:
- app

Aplicaçõ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.

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.pid
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

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ções
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: web

Aplicaçõ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.