A partir de 1 de abril de 2025, a Docker vai implementar limites drásticos de taxa de acesso (“pull rate limits”) no Docker Hub, impactando diretamente os pipelines CI/CD, incluindo aqueles que utilizam o GitLab! É essencial preparar-se agora para evitar falhas inesperadas e paralisação total dos seus projetos!
O QUE VAI MUDAR?
A nova política de restrição do Docker Hub definirá os seguintes limites de acesso:
Tipo de Utilizador | Limite de Pulls por Hora | Repositórios Públicos | Repositórios Privados |
---|---|---|---|
Business, Team, Pro (autenticado) | Ilimitado (uso justo) | Ilimitado | Ilimitado |
Pessoal (autenticado) | 100 | Ilimitado | Até 1 |
Não autenticado | 10 por endereço IPv4 ou sub-rede IPv6 /64 | Não aplicável | Não aplicável |
PORQUE ISSO É EXTREMAMENTE IMPORTANTE?
- O GitLab Dependency Proxy atualmente faz pulls do Docker Hub como usuário não autenticado.
- A maioria dos pipelines CI/CD que não usam o Dependency Proxy acessam diretamente o Docker Hub sem autenticação.
- Runners hospedados no GitLab.com podem compartilhar o mesmo IP, levando a um esgotamento rápido do limite e falhas catastróficas!
COMO ISSO AFETA OS UTILIZADORES DO GITLAB?
1. Limite de Pulls Diretos no Docker Hub
Se o seu pipeline CI/CD realiza downloads diretos de imagens do Docker Hub sem autenticação, prepare-se para o pior: será limitado a apenas 10 pulls por hora por endereço IP! Se os seus pipelines forem frequentes ou compartilharem infraestrutura, esse limite será atingido em questão de minutos, resultando em falhas recorrentes!
2. Impacto no GitLab Dependency Proxy
O GitLab Dependency Proxy, utilizado para armazenar imagens em cache, também será severamente afetado, pois atualmente opera como usuário não autenticado. Isso significa que as imagens serão limitadas a apenas 10 pulls por hora, tornando a sua infraestrutura extremamente vulnerável!
3. Problemas para Runners Hospedados no GitLab.com
Embora a Google Cloud forneça um cache pull-through para imagens comuns, os trabalhos que executam Docker-in-Docker ou Kaniko podem ser impactados, pois ainda precisarão baixar imagens diretamente do Docker Hub, ficando sujeitos aos novos limites.
O QUE O GITLAB ESTÁ A FAZER PARA MITIGAR O PROBLEMA?
- Autenticação do Dependency Proxy: O GitLab já adicionou suporte para autenticação no Docker Hub, aumentando consideravelmente os limites.
- Atualização de Documentação: Guias detalhados para configurar autenticação em pipelines e evitar problemas.
- Preparação da Infraestrutura: Medidas para minimizar impactos em runners hospedados no GitLab.com.
COMO SE PREPARAR PARA EVITAR O CAOS?
1. Configure Autenticação no Docker Hub
- Adicione credenciais do Docker Hub nas variáveis CI/CD do seu projeto ou grupo.
- Utilize a variável
DOCKER_AUTH_CONFIG
para aumentar seu limite para 100 pulls por hora (ou ilimitado com subscrição paga).
2. Utilize o GitLab Container Registry
Evite depender do Docker Hub: armazene suas imagens no GitLab Container Registry!
docker pull busybox:latest
docker tag busybox:latest $CI_REGISTRY_IMAGE/busybox:latest
docker push $CI_REGISTRY_IMAGE/busybox:latest
E no seu .gitlab-ci.yml
:
image: $CI_REGISTRY_IMAGE/busybox:latest
3. Utilize o GitLab Dependency Proxy
Configure o Dependency Proxy para armazenar imagens em cache e evitar problemas de taxa limite.
4. Subscrição Paga no Docker Hub
Para equipas com alto consumo de imagens, um plano pago pode ser a solução mais rápida e eficaz.
BOAS PRÁTICAS PARA MINIMIZAR O IMPACTO
- Evite usar tags
latest
, pois forçam downloads desnecessários. - Utilize as mesmas imagens base em projetos diferentes para reduzir downloads.
- Programe pipelines menos críticos fora dos horários de pico.
- Utilize cache para evitar pulls repetitivos.
CRONOGRAMA: O QUE FAZER AGORA?
✅ Imediatamente: Configure autenticação no Docker Hub e Dependency Proxy. ✅ Antes de 1 de Abril de 2025: Teste e ajuste suas configurações para evitar falhas. ⏳ A partir de 1 de Abril de 2025: Novos limites entram em vigor. 🚀 A partir de 17 de Abril de 2025: GitLab 17.11 lança suporte para autenticação do Dependency Proxy via interface.
NÃO ESPERE ATÉ O ÚLTIMO MOMENTO! Configure já a sua infraestrutura para evitar surpresas desagradáveis e garantir que seus pipelines GitLab continuem a funcionar sem interrupções!