Giáo trình tự học miễn phí · Dịch vụ hỗ trợ theo nhu cầu.
Bài 0535phút ước tínhThực chiến · Chuyên sâu
5. Đóng Gói Docker Chuẩn Production: Multi-Stage Build, User Non-Root & Xử Lý Tín Hiệu PID 1
Tối ưu hóa Dockerfile cho môi trường thực tế: Cấu trúc Multi-stage 4 tầng siêu nhẹ (~100MB), phân quyền user non-root chống leo thang đặc quyền, và tích hợp dumb-init xử lý graceful shutdown.
🐳 4 Tầng Của Multi-Stage Dockerfile Chuẩn
graph TD
A["Stage 1: Base (Alpine Linux siêu nhẹ)"] --> B["Stage 2: Dependencies (Cài đặt Packages & Lockfile)"]
B --> C["Stage 3: Builder (Biên dịch Code & Prune DevDependencies)"]
C --> D["Stage 4: Runner (Non-root appuser + dumb-init + Healthcheck)"]#### Các Điểm Kỹ Thuật Cốt Lõi:
- User Non-root (
appuser:nodejsUID 1001): Ngăn chặn hacker chiếm quyền điều khiển server nếu ứng dụng có lỗ hổng RCE. - Xử lý tín hiệu PID 1 (
dumb-init): Giúp container tiếp nhận đúng tín hiệuSIGTERMđể đóng kết nối database an toàn khi restart. - Tích hợp
HEALTHCHECK: Cho phép reverse proxy nhận biết container bị treo để tự động chuyển tiếp luồng truy cập.
# DOCKERFILE MULTI-STAGE CHUẨN PRODUCTION CHO PYTHON FLASK
FROM python:3.12-alpine AS base
WORKDIR /app
RUN apk add --no-cache libpq dumb-init curl
# Stage Builder
FROM base AS builder
RUN apk add --no-cache gcc musl-dev postgresql-dev
COPY requirements.txt .
RUN pip install --no-cache-dir --user -r requirements.txt
# Stage Runner (Non-Root)
FROM base AS runner
WORKDIR /app
ENV PATH=/home/appuser/.local/bin:$PATH
ENV PYTHONUNBUFFERED=1
RUN addgroup -g 1001 -S appgroup && adduser -u 1001 -S appuser -G appgroup
COPY --from=builder --chown=appuser:appgroup /root/.local /home/appuser/.local
COPY --chown=appuser:appgroup . .
USER appuser
EXPOSE 5000
HEALTHCHECK --interval=30s --timeout=5s --start-period=10s --retries=3 CMD curl -f http://localhost:5000/healthz || exit 1
ENTRYPOINT ["dumb-init", "--"]
CMD ["gunicorn", "--bind", "0.0.0.0:5000", "--workers", "3", "app:app"]
Thực hành
Thực hành và tự đánh giá
Xây dựng một file Dockerfile Multi-stage cho dự án của bạn, build thử nghiệm và kiểm tra tiến trình đang chạy dưới user non-root.
🏢 BẠN MUỐN TRIỂN KHAI CHO CẢ PHÒNG BAN / DOANH NGHIỆP?
Đề Xuất Công Ty Tài Trợ & Đào Tạo In-House Trọn Gói
AI Tinh Gọn hỗ trợ khảo sát hiện trạng, kèm 1-1 on-premise bảo mật dữ liệu, setup hạ tầng riêng và xuất hóa đơn VAT hợp pháp cho doanh nghiệp.
⚖️ Bản quyền sở hữu trí tuệ: © 2026 AI Tinh Gọn (aitinhgon.vn) · Giấy phép Creative Commons CC BY-NC-ND 4.0. Cho phép tự học cá nhân, nghiêm cấm thương mại hóa hoặc bán lại.
Giáo trình mở →
Tiến độ tự học lưu trên trình duyệt này. Chỉ đánh dấu khi đã kiểm tra sản phẩm thực hành.