Executando verificação de segurança...
9

[Docker] - conheça beerus, uma ferramenta de automação para manter seu ambiente docker limpo e organizado

Beerus é uma ferramenta open-source que remove automaticamente containers, imagens e volumes não utilizados no Docker. Ele ajuda a manter seu ambiente local mais leve, organizado e eficiente, sem precisar executar comandos de limpeza manualmente. 🚀

🤔 Por que usar o Beerus?

Se você usa Docker no seu computador, provavelmente já passou por isso:

  • Seu disco fica cheio de containers e imagens antigas. 💾❌
  • Você precisa rodar comandos como docker system prune manualmente. 🏗️
  • Seu ambiente começa a ficar lento por causa do excesso de arquivos. 🐢

O Beerus resolve tudo isso de forma automática! 💡

🔧 Como Funciona?

O Beerus roda em segundo plano e limpa os recursos do Docker conforme as regras que você definir.

Por exemplo:
✅ Remover automaticamente containers com status Stopped
✅ Apagar imagens que não foram usadas nos últimos 7 dias

📦 Instalação

Para instalar, basta clonar o repositório e compilar:

# Clone o Beerus
 git clone https://github.com/LucasMendesl/beerus.git
 cd beerus

# Compile e gere o binário
 go build -o beerus .

⚙️ Configuração

O Beerus usa um arquivo YAML para definir as regras de limpeza. Aqui está um exemplo básico:

version: "1.0"
beerus:
  # Number of concurrent workers for processing containers/images
  concurrencyLevel: 5

  # How often to check for expired resources (in hours)
  expiringPollCheckInterval: 1

  logging:
    # Log level: debug, info, warn, error
    level: "info"
    # Log format: json, text
    format: "text"

  images:
    # Remove images older than N days
    lifetimeThreshold: 100
    # Skip cleanup for images with these labels
    ignoreLabels:
      - "beerus.service.critical"
    # Force remove repository images that have more that one tag
    forceRemovalOnConflict: false

  containers:
    # Maximum restart count for containers with "always" policy
    # 0 means no limit
    maxAlwaysRestartPolicyCount: 5
    # Skip cleanup for containers with these labels
    ignoreLabels:
      - "beerus.service.critical"
    # Remove associated volumes on container cleanup
    forceVolumeCleanup: false
    # Remove associated links on container cleanup
    forceLinkCleanup: false

▶️ Como Rodar

Após configurar, basta executar o Beerus:

./beerus --config-file config.yaml hakai

você também pode executar através do container docker:

# running using environment variables
❯ docker run \
-e BEERUS_IMAGES_LIFETIME_THRESHOLD=5 \
-e BEERUS_EXPIRING_POLL_CHECK_INTERVAL=24 \
-e BEERUS_LOG_LEVEL=debug \
-v /var/run/docker.sock:/var/run/docker.sock:ro \
lucasmendesl/beerus:latest hakai

#running using cli flags
❯ docker run \
-v /var/run/docker.sock:/var/run/docker.sock:ro \
ghcr.io/lucasmendesl/beerus:latest hakai --lifetime-threshold=100

Ele começará a monitorar e limpar automaticamente os containers e imagens que não são mais necessários. 🧹

🎯 Benefícios

✅ Libera espaço no seu disco 💾
✅ Mantém seu ambiente Docker organizado 🔄
✅ Evita trabalho manual repetitivo ⏳
✅ Fácil de configurar e usar 🛠️

📌 Conclusão

Beerus é uma ótima ferramenta para quem usa Docker no dia a dia e quer manter o ambiente limpo sem esforço. Baixe agora e experimente! 🚀

📍 Repositório oficial: Beerus no GitHub

Carregando publicação patrocinada...
1

Achei bem interessante, seria uma boa para configurar em uma máquina que faz builds e deploys.
Exemplo uma máquina que roda Jenkins e faz build de imagens a cada commit ou Pull Request aprovado e chega a ter centenas de containers que não estão sendo mais usados, limpar os mais antigo que N dias e manter sempre as últimas 5 cópias de imagens para backup seria uma boa

1

Fala João, tudo bem ?

Cara esse é um excelente caso de uso, a idéia da ferramenta era bem simples na minha cabeça, remover os recursos não usados na nossa máquina, mas vocês sempre pensando em outros casos de uso, massa demais 👊

A idéia é ir evoluindo cada vez mais a ferramenta pra abranger uma gama maior de casos de uso, vou ficar muito feliz vendo isso sendo útil para mais pessoas.

1
1

Fala Jose, tudo bem ?

A idéia é exatamente essa 😂😂, essa descrição que o gepeto (apelido do chatGPT) criou para a documentação do repositório "maintains balance in Universe 7 by destroying what needs to be eliminated, this tool helps maintain balance in your Docker environment by efficiently cleaning up unused images and containers". é exatamente o objetivo do projeto, ja tive problema de tamanho de disco só por ser vagabundo e não rodar o prune, ai veio a idéia de criar isso pra facilitar a minha vida (e pra me divertir também).

1

Legal... vou recomendar para o nosso time aqui do ShellHub. Todos nossos serviços em Go e a UI, tanto da parte open-source quanto da closed-source, têm um ambiente de desenvolvimento baseado em docker-compose então volta e meia o pessoal precisa fazer um prune.

1

Fala Gustavo, tudo bem ?

Cara muito obrigado pelo feedback, seria muito bacana ver isso sendo usado dessa forma, minha idéia era algo mais simples, de rodar na propria máquina, mas é bem bacana ver o pessoal interagindo e vendo outras formas de uso pra ferramenta, a idéia é sempre trabalhar para evoluir o projeto e quanto mais casos de uso e mais pessoas usando, melhor o projeto fica 😆

Eu espero que te ajude e ajude o pessoal da sua empresa cara.

1
2

A idéia é exatamente essa, ser algo útil (não só pra mim, que sou preguiçoso e esqueço de dar docker system prune) mas como pra outras pessoas que esquecem disso.

A referência da ferramenta foi justamente porque eu tava assistindo DBZ Super quando tive essa idéia.

Valeu demais pelo feedback, espero que seja útil pra você

1
1

Quase isso cara 😂😂

Juro pra você que pensei em um cronjob só rodando esse comando, mas acabou vindo a idéia de desenvolver esse projetinho, só pela zoeira mesmo e acabou que foi bem divertido e acredito que possa ajudar algumas pessoas, a idéia e ir evoluindo o projeto conforme a galera vai usando