Rumah >pembangunan bahagian belakang >Golang >## Bagaimana untuk Pra-Cache Go Dependencies dalam Imej Docker untuk Binaan Lebih Pantas?

## Bagaimana untuk Pra-Cache Go Dependencies dalam Imej Docker untuk Binaan Lebih Pantas?

Susan Sarandon
Susan Sarandonasal
2024-10-26 18:50:03226semak imbas

## How to Pre-Cache Go Dependencies in Docker Images for Faster Builds?

Membina Imej Docker dengan Cekap dengan Kebergantungan Pra-cache

Apabila membina imej Docker, adalah penting untuk meminimumkan masa binaan. Satu strategi adalah untuk menyimpan kebergantungan. Walau bagaimanapun, ini memerlukan membina kebergantungan terlebih dahulu, yang boleh memakan masa.

Adakah terdapat cara untuk pra-membina berbilang kebergantungan yang disenaraikan dalam fail go.mod?

Jawapannya terletak pada menggunakan mekanisme caching Docker. Struktur Dockerfile yang dicadangkan termasuk lapisan caching yang penting:

FROM scratch
COPY --from=build /out/example /

Langkah ini menyalin boleh laku terbina daripada peringkat binaan pertengahan ke dalam imej akhir. Walau bagaimanapun, bahan utama adalah dalam peringkat binaan:

RUN --mount=type=cache,target=/root/.cache/go-build go build -o /out/example .

Arahan ini melekapkan direktori cache go build lalai (/root/.cache/go-build) dan melaksanakan arahan go build. Cache memastikan bahawa kebergantungan dimuat turun dan disusun sekali sahaja, dengan ketara mengurangkan masa binaan untuk binaan seterusnya.

Untuk mendayakan caching, adalah penting untuk menetapkan pembolehubah persekitaran DOCKER_BUILDKIT kepada 1:

DOCKER_BUILDKIT=1 docker build -t myimage .

Dengan mengikuti langkah ini, anda boleh pra-bina semua kebergantungan dalam go.mod dan memanfaatkan caching untuk menyelaraskan binaan imej Docker anda.

Atas ialah kandungan terperinci ## Bagaimana untuk Pra-Cache Go Dependencies dalam Imej Docker untuk Binaan Lebih Pantas?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn