Lệch phiên bản frontend / backend
Triệu chứng
Phần tiêu đề “Triệu chứng”Trong Settings → About, phiên bản frontend và phiên bản backend được hiển thị cạnh nhau và hàng được tô màu hổ phách vì chúng khác nhau, ví dụ:
- Frontend
v1.5.0so với backendv1.5.0-1-gabc1234, hoặc - Frontend
v1.5.0so với backendv1.4.0.
Bảng tô sáng sự lệch một cách có chủ ý — đó là bộ phát hiện trôi (drift) tích hợp. Hai phiên bản được kỳ vọng khớp nhau trên một hộp được triển khai đúng.
Xác nhận
Phần tiêu đề “Xác nhận”Đọc trực tiếp phiên bản mà backend báo cáo và so với những gì bảng About hiển thị cho frontend:
curl -s http://localhost:5000/api/system/health | jq '{version, commit, buildTime}'Có hai nguyên nhân thường gặp:
- Một tab trình duyệt cũ. Bundle frontend được nướng vào lúc build, nên một tab cũ vẫn hiển thị phiên bản nó được nạp với, ngay cả sau khi triển khai lại.
- Một container được triển khai lại mà không có cái kia. Một image backend mới được triển khai nhưng image frontend (hoặc ngược lại) không được build lại — nên chúng thực sự chạy các phiên bản khác nhau.
Một chuỗi phiên bản chứa các commit thêm sau tag (...-1-gabc1234) nghĩa là container đó được build từ một commit sau tag phát hành — nó đi trước bản build có tag sạch.
-
Trước tiên, loại trừ một tab cũ — đó là nguyên nhân rẻ nhất. Hard-refresh trình duyệt (tải lại bỏ qua cache). Nếu frontend và backend giờ khớp nhau, bạn đã xong; không có gì thực sự sai với việc triển khai.
-
Nếu chúng vẫn khác, hãy triển khai lại để cả hai image cùng phiên bản. Build lại và đưa stack lên cùng nhau để frontend và backend được build từ cùng một bản phát hành:
Terminal window docker compose -f docker-compose.release.yml up -d -
Xác minh chúng khớp nhau. Tải lại Settings → About — phần tô màu hổ phách sẽ biến mất. Xác nhận phiên bản backend nữa:
Terminal window curl -s http://localhost:5000/api/system/health | jq .version
Phòng ngừa
Phần tiêu đề “Phòng ngừa”- Triển khai frontend và backend cùng nhau. Cả hai image mang một phiên bản được nướng vào lúc build; triển khai chúng như một bộ khớp từ một bản phát hành giữ cho bảng About màu xanh.
- Hard-refresh sau mỗi lần triển khai. Các tab trình duyệt giữ bundle cũ cho đến khi tải lại. Một lần hard refresh nhanh sau mỗi lần triển khai tránh các báo cáo trôi sai.
- Dùng bảng About làm kiểm tra sau-triển-khai. Coi nó là bước nghiệm thu cuối cùng — nếu nó màu hổ phách, việc triển khai chưa hoàn tất.
Liên quan
Phần tiêu đề “Liên quan”- Release Notes — những gì đã ship trong mỗi phiên bản.
- Khả năng quan sát & Cảnh báo — tình trạng runtime cùng với phiên bản.