Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
A instrução ONBUILD no Dockerfile é uma ferramenta poderosa, mas que pode gerar dor de cabeça se mal utilizada. Ela permite que comandos sejam executados automaticamente em imagens derivadas, o que pode facilitar o fluxo de build em certos cenários.
Porém, o problema surge quando essa automação não é bem controlada ou entendida, principalmente em ambientes de produção. Imagine uma imagem que tem uma instrução ONBUILD que executa scripts de configuração ou testes, e você acaba herdando esses passos sem perceber. Pode gerar riscos de segurança, performance ou até falhas inesperadas na hora do deploy.
Na minha visão, o ideal é usar ONBUILD com muita cautela, sabendo exatamente o que ela vai disparar. Em ambientes de produção, prefiro evitar esse tipo de automação, ou pelo menos deixar bem claro o que está acontecendo. A documentação do Docker, inclusive, não ajuda muito a entender o impacto real, e isso pode fazer a gente cair em armadilhas. Sem esse critério, a solução pode parecer simples no começo e cara no suporte.
Alguém aqui já passou por uma situação difícil por causa de ONBUILD? Como vocês controlam esse risco na prática?
ai sim concordo, esse comentário. Essa hstória de automatizar tudo pode parecer massa, mas na hora do aperto é que a gente vê o perigo. Eu sempre prefiro fazer scripts explícitos no CI/CD e evitar surpresas.
Já passei por isso, mano. A automação que parecia útil virou um problema quando uma imagem herdada tinha alguma configuração que não se encaixava no ambiente de produção. Acho que o segredo é evitar usar ONBUILD em imagens que vão pra produção ou deixar tudo bem documentado. E o que vcs costumam fazer pra evitar esses riscos?
Eu faria um teste bem pequeno antes de colocar em produção, pra ver o que a ONBUILD realmente faz na prática. No meu caso, sempre tento encapsular bem o que vai rodar, pra facilitar o rollback se precisar. Acho que o maior perigo é perder controle do que está sendo herdado com essas instruções automáticas.