AzLearn

Docker

Docker

تطبيق ~20 دقيقة

Docker — حاويات Go

Go من أفضل اللغات لـ Docker — لأنها تُنتج ملفاً تنفيذياً واحداً بدون اعتماديات. هذا يعني صور Docker صغيرة جداً وآمنة.

لماذا Go + Docker = ❤️

  • ملف تنفيذي واحد (static binary) — لا تحتاج runtime
  • يمكن استخدام صورة scratch (فارغة!) — أصغر صورة ممكنة
  • البناء سريع مع cache الوحدات
  • Cross-compilation مدمج

Dockerfile بسيط

main.go

شرح البناء المتعدد المراحل

main.go

Docker Compose

main.go

.dockerignore

.git
.gitignore
README.md
Makefile
*.md
vendor/
tmp/
.env

أفضل ممارسات Docker + Go

main.go

إضافة مستخدم غير root

FROM scratch

# إضافة مستخدم — Add non-root user
COPY --from=builder /etc/passwd /etc/passwd
COPY --from=builder /app/server /server

USER nobody
CMD ["/server"]
تحدي — Challenge