- 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
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
~/.config/containers/systemd, é difícil isolá-los do projetoDepois de descobrir o Quadlet, alguém montou um homelab com base em Atomic OS e Quadlet rootless e recomenda fortemente essa abordagem
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
Por causa da praticidade do Docker Compose, muitas pessoas hesitam em migrar do Docker para o Podman
Foi mencionado que o Podman-Compose está “sem manutenção”, mas o Podlet está em situação parecida
É inconveniente que o upstream do Podman não forneça repositórios para Debian/Ubuntu
Alguém passou a executar contêineres Podman no openSUSE MicroOS com systemd/quadlet e está satisfeito com a configuração atual
Gosta da integração entre systemd e Podman
É interessante que o Quadlet tenha chegado à primeira página do Hacker News
O Quadlet permite usar contêineres como serviços comuns do sistema