GitHub Actions → GHCR → VPS
Thiết kế pipeline kiểm thử, build, ký và triển khai có rollback.
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
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.
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Đố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 ↗