Bỏ qua để đến nội dung

Cài đặt từ gói offline

Đây là cách được khuyến nghị để cài đặt tại hiện trường biên của khách hàng khi không có internet, không truy cập registry, và không build image trên hộp. Bạn cài đặt mọi thứ từ một gói phát hành tự chứa, được phân phối trên thiết bị USB.

Một gói phát hành là một thư mục duy nhất, được đặt tên theo cấu hình phần cứng và phiên bản (ví dụ amd64-cpu-v1.5.0). Chọn gói khớp với phần cứng của bạn:

Cấu hình góiDùng khi hộp có…
amd64-cpuCPU x86_64, không GPU — suy luận chỉ trên CPU
amd64-gpuCPU x86_64 + NVIDIA GPU — tăng tốc TensorRT
jetsonModule biên NVIDIA Jetson (arm64 / L4T)

Bên trong gói:

  • Thư mụcamd64-cpu-v1.5.0/
    • Thư mụcimages/
      • amd64-cpu-v1.5.0.images.tar.zst ba image dịch vụ, đã nén
      • manifest.txt tag image + checksum
    • Thư mụccompose/
      • docker-compose.release.yml stack dựa trên image (không có bước build)
      • .env.template placeholder cho cổng + secret
    • Thư mụcmodels/
      • predictive_maintenance.onnx mô hình mẫu demo (trọng số ngẫu nhiên)
    • install.sh
    • update.sh
    • uninstall.sh
    • README.txt tờ hướng dẫn một trang cho người vận hành

Hộp đích phải có sẵn những thứ sau (chúng đi kèm trong image OS golden — trình cài đặt kiểm tra chúng và dừng lại nếu thiếu bất kỳ thứ gì; nó không cài giúp bạn):

  • Docker Engine 20.10 trở lên, kèm plugin docker compose v2
  • zstdopenssl
  • NVIDIA Container Toolkit — chỉ với gói GPU và Jetson
  1. Sao chép toàn bộ thư mục gói từ thiết bị USB của bạn sang hộp đích, sau đó mở một terminal trong đó:

    Terminal window
    cd amd64-cpu-v1.5.0/
  2. Trình cài đặt tự phát hiện cấu hình phần cứng, nạp các image container, sinh secret, khởi động stack và chờ đến khi khỏe mạnh.

    Terminal window
    sudo ./install.sh

    Để ép một cấu hình cụ thể, hoặc để cài đặt thêm dịch vụ khởi động cùng máy:

    Terminal window
    sudo ./install.sh --profile amd64-cpu # ép cấu hình
    sudo ./install.sh --with-systemd # đồng thời khởi động khi boot

    Bên dưới, install.sh chạy các bước này theo thứ tự:

    1. Preflight — kiểm tra Docker, GPU toolkit (GPU/Jetson) và đĩa.
    2. Xác minh checksum của kho lưu image (phát hiện media hỏng hoặc bị giả mạo).
    3. Nạp imagedocker load từ kho lưu đi kèm (không pull, không build).
    4. Sinh secret — tạo secret ký JWT và mật khẩu admin ngay trên hộp rồi ghi vào tệp .env được bảo vệ (chế độ 600). Không secret nào được đóng gói sẵn trong gói.
    5. Khởi động stackdocker compose up -d.
    6. Cổng tình trạng — chờ cả ba dịch vụ báo cáo khỏe mạnh.
    7. Khởi tạo adminin URL bảng điều khiển + mật khẩu admin một lần duy nhất.
  3. Trình cài đặt sinh secret ký JWT tự động. Bình thường bạn không bao giờ động đến nó, nhưng bạn có thể xác nhận tệp .env được bảo vệ tồn tại:

    Terminal window
    ls -l .env # kỳ vọng chế độ -rw------- (600)

    Nếu bạn từng cần cung cấp giá trị của riêng mình (ví dụ chính sách quản lý secret của doanh nghiệp), hãy sửa .env trước lần up đầu tiên và đặt một giá trị ngẫu nhiên mạnh:

    # .env (placeholder — sinh một giá trị ngẫu nhiên mạnh, không tái sử dụng)
    AIBOARD_JWT_SECRET=your-strong-random-jwt-secret
  4. Gói đi kèm một mô hình demo với trọng số ngẫu nhiên. Thay nó bằng mô hình predictive_maintenance.onnx đã huấn luyện của bạn để các dự đoán có ý nghĩa:

    • Trước lần cài đầu tiên: ghi đè models/predictive_maintenance.onnx trong gói, sau đó chạy install.sh.
    • Sau khi cài: đặt mô hình của bạn vào volume model-data tại /data/models và khởi động lại dịch vụ suy luận.

    Bạn cũng có thể tải mô hình lên sau từ bảng điều khiển — xem Triển khai mô hình.

  5. Xác nhận cả ba dịch vụ đều khỏe mạnh:

    Terminal window
    docker compose -f compose/docker-compose.release.yml ps

    Kỳ vọng ba container ở trạng thái healthy. Sau đó mở URL bảng điều khiển mà trình cài đặt đã in và đăng nhập bằng tài khoản admin.

Triển khai một gói mới hơn. Việc cập nhật chụp snapshot cơ sở dữ liệu trước để bạn có đường rollback.

Terminal window
sudo ./update.sh

Snapshot trước-cập-nhật chỉ bao gồm cơ sở dữ liệu (không gồm mô hình đã tải lên hay bộ nhớ đệm TensorRT). Hãy sao lưu các volume đó riêng nếu bạn cần rollback mô hình.

Triệu chứngÝ nghĩa
Bundle manifest missingBạn chạy trình cài đặt từ thư mục nguồn, không phải gói đã lắp ráp. Dùng thư mục gói bạn đã sao chép từ USB.
Architecture mismatchSai cấu hình gói cho CPU của hộp này. Dùng cấu hình khớp.
NVIDIA toolkit not wired inGói GPU/Jetson trên một hộp không có container toolkit. Dùng gói amd64-cpu, hoặc sửa stack GPU trên image OS.
Suy luận kẹt ở unhealthyBiên dịch TensorRT lần đầu (GPU) mất 2–3 phút — hãy chờ. Nếu không, kiểm tra log suy luận.
Archive checksum mismatchMedia USB hỏng hoặc bị giả mạo. Sao chép lại gói và thử lại.

Xem runbook Khắc phục sự cố đầy đủ để tra cứu các bản sửa theo triệu chứng.