Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Muita gente fica na dúvida sobre como usar a instrução ONBUILD no Dockerfile. A documentação do Docker explica, mas não é nada claro na prática. Basicamente, ela permite que você defina ações que serão executadas na construção de uma imagem que herda da sua, o que pode parecer útil para criar imagens base reutilizáveis.
Por exemplo, você pode definir comandos de instalação ou configuração na sua imagem base usando ONBUILD, e esses comandos só serão executados quando uma nova imagem for criada a partir dela. Isso ajuda a evitar a repetição de comandos em várias imagens, mas tem que tomar cuidado, pq essa cadeia de comandos pode gerar efeitos colaterais difíceis de controlar. A decisão fica mais saudável quando o time consegue medir o impacto depois.
No meu entendimento, o problema é que essa funcionalidade pode criar um efeito cascata difícil de rastrear, especialmente em ambientes com múltiplas camadas de herança. Além disso, ela pode impactar na estabilidade da sua pipeline de build se não bem planejada.
Quem já usou essa estratégia, como vocês lidaram com o controle de efeitos colaterais? Já tiveram dores de cabeça com isso na produção?
No meu time, preferimos evitar usar ONBUILD pra não criar efeitos colaterais difíceis de controlar.
Concordo, o ponto é que a cadeia de comandos ONBUILD pode gerar efeitos difíceis de rastrear, especialmente se várias imagens herdam da mesma base. Já passei por isso, o ideal é usar com moderação e sempre documentar bem o que cada ONBUILD faz.
manda um ae oxe, eu já usei pra automatizar instalação de dependências em várias imagens, mas é verdade que dá um trabalho depois pra entender o que foi realmente executado. Acho que funciona bem em ambientes controlados, mas na produção eu ficaria atento.
Acho que a chave é usar com moderação mesmo. Aqui no meu time, a gente tenta evitar ao máximo, porque uma mudança na imagem base pode impactar várias aplicações. Alguém já teve problema com isso na prática?