Rumah > pembangunan bahagian belakang > Golang > Bagaimanakah Pengambilan Ketergantungan Manual Boleh Mengoptimumkan Go Docker Builds?

Bagaimanakah Pengambilan Ketergantungan Manual Boleh Mengoptimumkan Go Docker Builds?

Barbara Streisand
Lepaskan: 2024-12-10 04:42:12
asal
166 orang telah melayarinya

How Can Manual Dependency Fetching Optimize Go Docker Builds?

Ambil Ketergantungan Secara Manual untuk Pengoptimuman Binaan Docker

Dalam persekitaran pengaturcaraan Go, alat go biasanya mengendalikan pengurusan dan pemasangan kebergantungan secara automatik. Walau bagaimanapun, untuk binaan imej Docker yang dioptimumkan, ia boleh memberi manfaat untuk memisahkan pemasangan kebergantungan sebagai peringkat yang berbeza.

Dalam Go 1.11 dan versi terdahulu, ini tidak dapat dilakukan kerana kekurangan arahan khusus. Walau bagaimanapun, pembetulan dalam isu #26610 telah memperkenalkan arahan muat turun mod go.

Untuk memanfaatkan arahan ini bagi binaan Docker yang dioptimumkan:

  1. Salin Manifes Ketergantungan: Salin fail go.mod dan go.sum ke dalam binaan imej Docker konteks.
  2. Jalankan muat turun mod go: Laksanakan muat turun mod go dalam peringkat binaan Docker untuk mengambil kebergantungan secara manual.

Berikut ialah contoh berbilang peringkat Docker bina dengan caching lapisan:

FROM golang:1.17-alpine as builder
RUN apk --no-cache add ca-certificates git
WORKDIR /build

# Fetch dependencies
COPY go.mod go.sum ./
RUN go mod download

# Build
COPY . ./
RUN CGO_ENABLED=0 go build

# Create final image
FROM alpine
WORKDIR /
COPY --from=builder /build/myapp .
EXPOSE 8080
CMD ["/myapp"]
Salin selepas log masuk

Memisahkan pemasangan kebergantungan membolehkan Docker memanfaatkan lapisan caching, menjadikan binaan semula lebih cekap kerana banyak perubahan kod biasanya tidak menjejaskan kebergantungan.

Selain itu, pertimbangkan untuk memanfaatkan cache pengkompil Go seperti yang diterangkan dalam artikel "Bendungkan Persekitaran Pembangun Go Anda – Bahagian 2" untuk mempercepatkan lagi masa binaan .

Atas ialah kandungan terperinci Bagaimanakah Pengambilan Ketergantungan Manual Boleh Mengoptimumkan Go Docker Builds?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan