GSP.DEV
  • about
    • ✌️ สวัสดีครับ 😊
  • ⬜introduction
    • 🌐Web Development
      • 🖼️Frontend Developer
      • 🖥️Backend Developer
      • 🎓Full Stack Developer
      • 🚀DevOps Engineer
  • 📖Software
    • 🌐Web Development
      • Language
        • Javascript
        • TypeScript
        • PHP
        • Python
      • Runtime
        • Javascript Runtime
          • Node.js
          • Bun
      • Frontend Framework
        • CSS Framework
          • Tailwind CSS
        • Vite
        • Vue.js
          • Global API
          • Composition API
          • Single-File Component (SFC)
        • Nuxt.js
        • React.js
          • ตัวอย่างการใช้งาน React JS
        • Next.js
      • Backend Framework
        • Express.js
        • NestJS
        • Laravel
    • 🖥️Opeating System
      • Linux
        • Debian
        • Ubuntu
    • 📚Database
      • Relational Databases
        • MySQL
        • Postgres
      • Non-relational Database
        • Document
          • MongoDB
        • Key-value
          • Redis
        • Time Series
          • Prometheus
    • ⚙️Container
      • Docker
        • คำสั่ง Docker พื้นฐาน
      • LXC (Linux Containers)
        • การใช้งาน LXC
        • การใช้งาน Proxmox LXC
      • Container Runtime
        • Docker Container Runtime
        • Containerd
      • Container Orchestration
        • Docker Swarm
        • Kubernetes
    • 🛡️VPN
      • Wireguard
      • Tailscale
    • ☁️Serverless
      • Amazon S3 + Cloudfront
      • Vercel
      • Cloudflare Pages
      • AWS Lambda
    • 📦CDN
      • Cloudfront
    • 🗃️Storage
      • Amazon S3
      • MinIO
    • ✏️Content Management System
      • WordPress
    • 📷Photo Management Software
      • Immich
  • 🏭Infrastructure
    • 🌐Network
      • Firewall
      • Subnet
      • Router
      • Internet
      • Domain
      • DNS
      • Private Network
      • SDN
      • IPAM
      • Protocol
        • IP Address
        • DHCP
        • RTMP
        • TCP
        • UDP
        • HTTP
        • HTTPS
  • ⚙️Technology
    • Cloud Computing คืออะไร
    • VPN คืออะไร
    • Container
  • 🗣️เรื่องเล่า
    • การลดขนาด Image Docker
      • สำหรับ Next.js
    • รีวิว Github Copiot
  • 👨‍💻ลงโค้ด
    • Vue 3
      • การใช้งาน ref
      • การใช้งาน script setup
      • การใช้งาน await ใน script setup
Powered by GitBook
On this page

Was this helpful?

  1. เรื่องเล่า

การลดขนาด Image Docker

วิธีการลดขนาด Docker Image

  1. เลือก Base Image เล็กๆ: ใช้ base image ที่มีขนาดเล็ก เช่น Alpine Linux (alpine) แทนการใช้ images มาตรฐานที่มีขนาดใหญ่กว่า

  2. ลบไฟล์ที่ไม่จำเป็น: เอาการติดตั้งหรือไฟล์ที่ไม่จำเป็นออกหลังจากการติดตั้ง เช่น package lists ที่อยู่ใน /var/lib/apt/lists หลังจากใช้ apt-get

    RUN apt-get update && apt-get install -y \
        package1 \
        package2 \
    && rm -rf /var/lib/apt/lists/*
  3. ใช้ Multi-stage Builds: แยกการ build และ run stages ซึ่งจะทำให้คุณสามารถทิ้ง artifacts หรือ dependencies ที่ไม่จำเป็นในการ run ได้

    # build stage
    FROM golang:1.17 as builder
    WORKDIR /app
    COPY . .
    RUN go build -o myapp
    
    # final stage
    FROM alpine
    COPY --from=builder /app/myapp /myapp
    CMD ["/myapp"]
  4. Minimize Layers: รวมหลายๆ คำสั่งใน Dockerfile ให้เป็นคำสั่งเดียว เพื่อช่วยลดจำนวน layers

    RUN apt-get update && apt-get install -y \
        package1 \
        package2 \
    && apt-get clean \
    && rm -rf /var/lib/apt/lists/*
  5. ใช้ Docker Ignore Files: เพิ่มไฟล์ .dockerignore เพื่อระบุไฟล์หรือโฟลเดอร์ที่ไม่ต้องการคัดลอกไปใน image

    node_modules
    *.log

การปฏิบัติตามคำแนะนำเหล่านี้จะช่วยลดขนาดของ Docker images และช่วยให้การดึง (pull) และการนำเข้า (deploy) เร็วขึ้นได้.

PreviousContainerNextสำหรับ Next.js

Last updated 4 months ago

Was this helpful?

🗣️