Construindo imagens Docker de maneira eficiente com dependências pré-armazenadas em cache
Ao construir imagens Docker, é crucial minimizar o tempo de construção. Uma estratégia é armazenar dependências em cache. No entanto, isso requer a construção das dependências primeiro, o que pode ser demorado.
Existe uma maneira de pré-construir várias dependências listadas no arquivo go.mod?
A resposta está em utilizando os mecanismos de cache do Docker. A estrutura Dockerfile sugerida inclui uma camada de cache crucial:
FROM scratch COPY --from=build /out/example /
Esta etapa copia o executável compilado de um estágio de compilação intermediário para a imagem final. No entanto, o ingrediente principal está no estágio de construção:
RUN --mount=type=cache,target=/root/.cache/go-build go build -o /out/example .
Este comando monta o diretório de cache go build padrão (/root/.cache/go-build) e executa o comando go build. O cache garante que as dependências sejam baixadas e compiladas apenas uma vez, reduzindo significativamente o tempo de compilação para compilações subsequentes.
Para ativar o cache, é essencial definir a variável de ambiente DOCKER_BUILDKIT como 1:
DOCKER_BUILDKIT=1 docker build -t myimage .
Seguindo essas etapas, você pode pré-construir todas as dependências em go.mod e aproveitar o cache para agilizar suas compilações de imagens Docker.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3