العودة إلى الدورة

استخدام Docker مع خدمات Go المصغرة

لغة Go (Golang) للخدمات المصغرة السحابية (Cloud-Native Microservices)

وضع الخدمة في حاوية

تشتهر Go بإنتاج ملف تنفيذي ثابت واحد (static binary)، مما يجعل صور Docker صغيرة جداً.

ملف Dockerfile متعدد المراحل:

dockerfile

مرحلة البناء

FROM golang:1.21-alpine AS builder WORKDIR /app COPY . . RUN go build -o main .

المرحلة النهائية

FROM alpine:latest COPY --from=builder /app/main . CMD ["./main"]

ينتج عن هذا صورة بحجم 15 ميجابايت تقريباً بدلاً من 800 ميجابايت!