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 se depara com o problema de o Docker Compose continuar usando uma versão antiga da imagem, mesmo após executar o comando de pull. O que acontece é que o compose não recria automaticamente os containers ao detectar uma atualização na imagem, o que pode gerar inconsistências na operação.
Para resolver isso, a prática mais comum é usar o comando docker-compose up --force-recreate --renew-anon-volumes. Essa combinação força a recriação dos containers com as imagens mais recentes, sem precisar apagar tudo manualmente.
Outra alternativa é definir restart: always na configuração do seu serviço, mas isso não garante a atualização da imagem automaticamente. Por isso, o ideal continua sendo usar comandos explícitos para forçar a atualização. Sem esse critério, a solução pode parecer simples no começo e cara no suporte. O valor aparece melhor quando operação, produto e engenharia olham para o mesmo risco.
No seu cenário, o que você acha que é mais prático: sempre usar essa linha de comando ou configurar alguma automação para garantir que os containers estejam sempre atualizados? Talvez seja interessante também revisar o fluxo de CI/CD para incluir essa etapa de forma mais automatizada. O valor aparece melhor quando operação, produto e engenharia olham para o mesmo risco. Por isso, o recorte precisa considerar manutenção, validação e caminho de volta. Esse contexto ajuda a separar ganho real de novidade difícil de sustentar.
Boa, mas às vezes esse método pode gerar downtime. Aqui, a gente tenta usar tags específicas de versão e atualizar gradualmente pra evitar impacto, tu faz assim também?
A minha dúvida é se essa abordagem de forçar o recriar toda vez não pesa no ambiente de produção, especialmente com serviços que precisam de alta disponibilidade.
No meu time, preferimos usar
docker compose pullseguido dedocker compose up force recreate. Assim, garantimos que a última imagem seja aplicada sem ficar com containers antigos. Mas, como o Wesley comentou, é importante pensar na janela de deploy.