CHƯƠNG 08 · Docker Production & CI/CD•BÀI 29 / 80

GitHub Actions → GHCR → VPS

Thiết kế pipeline kiểm thử, build, ký và triển khai có rollback.

Vận hành◷ 4 phút đọc1/4 trong chương

Nắm bản chất

CI cần chạy tests và security checks trước build/push. GHCR lưu artifact versioned; VPS pull một tag SHA hoặc digest đã được phê duyệt. Không nên build từ source trực tiếp trên VPS production vì khó chứng minh artifact đã qua CI.

Cân nhắc dùng GitHub Actions OIDC cho cloud credentials, tránh access keys dài hạn; với VPS SSH deployments, bảo vệ deploy key, host key verification, branch approvals và quyền deploy tối thiểu.

Luồng hoạt động

Git commit→CI→GHCR→VPS

Hãy tự giải thích mỗi mũi tên: dữ liệu, quyền hoặc tín hiệu nào được truyền qua bước này?

Lệnh & cấu hình mẫu

docker login ghcr.io
docker pull ghcr.io/ORG/APP@sha256:REAL_DIGEST
docker image inspect ghcr.io/ORG/APP@sha256:REAL_DIGEST --format '{{.Id}}'
docker compose -f compose.prod.yaml up -d --no-build

Lệnh có placeholder hoặc phụ thuộc môi trường thì cần thay thông tin thực tế, kiểm tra quyền và chỉ thực hiện trên tài nguyên được phép.

Bài tập 10–20 phút

✳

Đọc README Buổi 8 và sơ đồ workflow. Dùng image test trong GHCR riêng; kiểm chứng image digest trên host sau pull.

Lỗi dễ mắc

!

Dùng mutable latest cộng docker compose up -d không đủ tạo release audit hay rollback xác định.

Tự kiểm tra

Tại sao production host nên pull artifact thay vì build mã nguồn trực tiếp?Xem đáp án ↗

Để dùng đúng artifact đã qua test/security gates và tránh môi trường build không kiểm soát.

TÀI NGUYÊN ĐI KÈM

Học thêm qua lab

Có project thực hành đúng với chương này, kèm README và những giới hạn môi trường cần lưu ý.

↓ Tải mã nguồn thực hành chương 08
NGUỒN CHÍNH THỨC

Đối chiếu tài liệu gốc

Cú pháp và khả năng hỗ trợ có thể thay đổi theo phiên bản. Trước khi dùng Production, hãy kiểm tra tài liệu tương ứng.

Mở tài liệu chính thức ↗