GitLab Runner: Acelerar builds repetidos

Esta documentação faz parte do guia Construção de imagens Docker. Consulte o guia completo aqui: Construa e envie imagens Docker a partir dos seus pipelines GitLab CI/CD utilizando o seu runner Stackhero e Docker-in-Docker.

👋 Bem-vindo à documentação da Stackhero!

A Stackhero oferece-lhe uma solução GitLab Runner cloud fácil de utilizar, concebida para executar os seus jobs GitLab CI/CD de forma eficiente. Eis o que pode esperar:

  • Minutos CI/CD ilimitados: não existe faturação por minuto, por isso os seus pipelines podem correr sempre que precisar.
  • Vários jobs em simultâneo: execute vários jobs ao mesmo tempo para acelerar todo o seu pipeline.
  • Docker executor com suporte para Docker-in-Docker: simplifique a criação e o envio das suas imagens de containers.
  • Compatível com GitLab.com e também com qualquer instância GitLab self-managed.
  • Uma VM privada e dedicada alimentada por discos NVMe/SSD rápidos para builds consistentes e fiáveis.
  • Disponível nas regiões 🇪🇺 Europa e 🇺🇸 USA.

Poupe tempo: pode ligar o seu primeiro GitLab Runner e começar a executar pipelines em apenas alguns minutos!

Como o disco do seu runner é persistente entre pipelines, pode acelerar os builds reutilizando camadas de imagens anteriores como cache. Veja como pode configurar:

build-cached:
  stage: build
  image: docker:27
  services:
    - docker:27-dind
  variables:
    DOCKER_TLS_CERTDIR: "/certs"
  before_script:
    - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" "$CI_REGISTRY"
  script:
    # Tente obter a imagem mais recente para alimentar o cache (não há problema se ainda não existir):
    - docker pull "$CI_REGISTRY_IMAGE:latest" || true
    - docker build --cache-from "$CI_REGISTRY_IMAGE:latest" -t "$CI_REGISTRY_IMAGE:latest" .
    - docker push "$CI_REGISTRY_IMAGE:latest"

Esta abordagem permite que os seus pipelines terminem mais rapidamente ao longo do tempo, aproveitando o cache de camadas do Docker.