Memisahkan Pemasangan Ketergantungan daripada Membina dalam Modul Go
Go 1.11 memperkenalkan sokongan modul, yang mengautomasikan pemasangan pergantungan semasa binaan dan meminimumkan binaan semula. Walau bagaimanapun, sesetengah pembangun lebih suka mengambil kebergantungan secara manual dalam peringkat berasingan untuk memanfaatkan caching kontena dan mengoptimumkan kelajuan bina semula.
vgo Solution
Dalam versi Go yang terdahulu, terdapat tiada cara asli untuk mengambil kebergantungan secara manual. Walau bagaimanapun, isu #26610 pada repositori Go menangani ciri ini:
muat turun mod go
Arahan ini membolehkan anda mengambil kebergantungan secara manual tanpa menjalankan proses binaan. Untuk menggunakan arahan ini, anda hanya memerlukan fail go.mod dan go.sum dalam direktori projek anda.
Pelaksanaan Docker
Berikut ialah contoh skrip binaan Docker yang melaksanakan binaan berbilang peringkat cache dan menggunakan muat turun mod go:
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"]
Dengan melaksanakan pemisahan ini kebergantungan dan peringkat binaan, anda boleh memanfaatkan caching kontena untuk pemasangan kebergantungan dan meminimumkan masa binaan seterusnya.
Pertimbangan Alternatif
Selain pendekatan muat turun mod go, artikel "Containerize Your Go Developer Environment – Part 2" meneroka teknik lain untuk mengoptimumkan kelajuan binaan: memanfaatkan cache pengkompil Go. Meneroka kedua-dua pilihan boleh membantu anda memilih strategi terbaik untuk projek dan persekitaran khusus anda.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengasingkan Pemasangan Ketergantungan Modul Go daripada Proses Binaan untuk Binaan Docker yang Lebih Pantas?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!