2 pontos por GN⁺ 2025-03-25 | 1 comentários | Compartilhar no WhatsApp
  • Quadlet é uma ferramenta que permite executar contêineres Podman como serviços do systemd. Isso é útil para iniciar contêineres automaticamente em segundo plano após a reinicialização do servidor.
  • Antes, usava-se o comando podman generate systemd, mas agora a migração para o Quadlet é recomendada.

Método anterior

  • Era necessário criar o contêiner, gerar o arquivo de serviço do systemd e depois mover esse arquivo para o diretório apropriado para então ativar o serviço.
  • Esse processo tinha comandos longos e repetitivos, além do incômodo de precisar editar arquivos manualmente.

Problemas

  • O método anterior era complexo e pouco flexível.
  • Em comparação com a praticidade do Docker Compose, era preciso fazer muita coisa manualmente.

Quadlet

  • Com o Quadlet, é possível gerenciar contêineres criando arquivos .container.
  • Na seção [Container], é possível definir imagem, portas, volumes e variáveis de ambiente.
  • Na seção [Service], é possível configurar a política de reinicialização do contêiner.
  • Na seção [Install], é possível definir a inicialização automática no boot.

O que melhora

  • É possível gerenciar toda a configuração em um único arquivo e usar todas as opções do systemd.
  • Escrever o arquivo de configuração é mais fácil do que escrever scripts.
  • Dependências podem ser gerenciadas com facilidade.

Dependências

  • Se um contêiner de aplicação depender de um contêiner de banco de dados, é possível configurar a dependência na seção [Unit] usando as opções Requires e After.

Arquivos demais?

  • Dividir em vários arquivos pode reduzir a complexidade.
  • Também é possível agrupar arquivos relacionados para facilitar o gerenciamento.

Atualização de imagens

  • Com a opção AutoUpdate=registry, é possível atualizar imagens e reiniciar contêineres usando o comando podman auto-update.
  • O uso da tag latest pode ser arriscado, por isso é recomendado usar tags de versão específicas.

Sobre o podman-compose

  • O podman-compose é um script que converte arquivos Compose para Podman e systemd, mas não é adequado como alternativa de longo prazo.
  • O Quadlet combina melhor com o design sem daemon do Podman.

Material adicional

  • Para entender melhor o Quadlet, recomenda-se ler a página de manual podman-systemd.unit.
  • O Quadlet pode gerenciar não apenas contêineres, mas também pods, redes e volumes.
  • Se você não estiver familiarizado com a criação de arquivos de unidade do systemd, vale consultar também as páginas de manual systemd.unit e systemd.service.
  • podlet é uma ferramenta que pode ajudar a gerar arquivos Quadlet a partir de comandos do Podman ou de arquivos Compose.

1 comentários

 
GN⁺ 2025-03-25
Comentários no Hacker News
  • O Quadlet é uma alternativa ao Docker Compose, útil para “executar contêineres interdependentes” em um ambiente semelhante ao de produção. Porém, é menos útil em ambientes de desenvolvimento

    • O Docker Compose facilita o gerenciamento de dependências como banco de dados, Redis e OpenSearch
    • Como os arquivos do Quadlet precisam ficar em ~/.config/containers/systemd, é difícil isolá-los do projeto
    • Muitos desenvolvedores ainda usam Docker, e para usar Podman é preciso adicionar configurações manualmente
    • É necessária uma alternativa ao Docker Compose para desenvolvimento, mas o Quadlet não é adequado para isso
  • Depois de descobrir o Quadlet, alguém montou um homelab com base em Atomic OS e Quadlet rootless e recomenda fortemente essa abordagem

    • É possível usar ativação por socket do systemd para ativar o Traefik automaticamente
    • É a única forma de preservar o IP de origem em uma configuração rootless
  • O Quadlet é uma das melhores ferramentas já lançadas a partir do Podman e é recomendado para quem tem interesse em trabalhos baseados em contêineres

    • É conveniente poder tratar contêineres como serviços do sistema
    • Usar Quadlet como alternativa ao Docker permite uma configuração mais limpa
    • No ambiente local de desenvolvimento, ele não substitui o Docker Compose, e a equipe do Podman também não parece dar muita atenção a isso
  • Por causa da praticidade do Docker Compose, muitas pessoas hesitam em migrar do Docker para o Podman

    • O Quadlet permite usar o Podman como alternativa ao Docker Compose
    • Você não vai sentir falta do Docker e ainda poderá aproveitar a segurança da execução de contêineres rootless
  • Foi mencionado que o Podman-Compose está “sem manutenção”, mas o Podlet está em situação parecida

    • O Podlet não oferece suporte a muitos recursos do Docker Compose e não suporta empilhar vários arquivos YAML
  • É inconveniente que o upstream do Podman não forneça repositórios para Debian/Ubuntu

    • Isso levou à volta para o Docker Compose
  • Alguém passou a executar contêineres Podman no openSUSE MicroOS com systemd/quadlet e está satisfeito com a configuração atual

    • O Podman Compose era desconfortável de usar, e o Quadlet é uma escolha melhor
  • Gosta da integração entre systemd e Podman

    • O Docker Compose continua competitivo, e o Quadlet pode acabar complicando o diretório do projeto
  • É interessante que o Quadlet tenha chegado à primeira página do Hacker News

    • O uso de YAML do Kubernetes aumenta a portabilidade
  • O Quadlet permite usar contêineres como serviços comuns do sistema

    • A UX de contêineres rootless não combina tão bem com esse conceito
    • Gostariam de poder executar o Quadlet rootless dentro de uma sessão do sistema