DEV Community

Review Laptop
Review Laptop

Posted on Originally published at reviewlaptop.vn

Docker hoá Claude Code Router tiện nhưng build có chậm không

Đóng gói Claude Code Router vào container để chạy ngầm proxy cục bộ (cổng 3456) giúp cô lập môi trường Node.js và quản lý endpoint sạch sẽ. Thực tế thì nếu viết Dockerfile ẩu, bạn sẽ mất hàng phút chờ npm install mỗi lần cập nhật bản mới.

Tối ưu multi-stage Dockerfile và cấu trúc layer cache

Sai lầm phổ biến là sao chép toàn bộ mã nguồn rồi cài đặt dependencies trong một stage duy nhất. Hãy tách riêng khâu build và khâu runtime bằng multi-stage build để giảm dung lượng image cuối cùng xuống mức tối thiểu:

# Stage 1: Build & Dependencies
FROM node:20-alpine AS builder
WORKDIR /app
RUN npm install -g @musistudio/claude-code-router

# Stage 2: Runtime
FROM node:20-alpine AS runner
WORKDIR /app
COPY --from=builder /usr/local/lib/node_modules /usr/local/lib/node_modules
COPY --from=builder /usr/local/bin/ccr /usr/local/bin/ccr
EXPOSE 3456
CMD ["ccr", "start", "--port", "3456"]
Enter fullscreen mode Exit fullscreen mode

Thực tế đo kiểm cho thấy sự chênh lệch rõ rệt giữa các lần build:

  • Cold build (không cache): mất khoảng 35–50 giây do phải tải base image Alpine và cài đặt gói qua mạng.
  • Cached build (layer cache hit 100%): chỉ mất dưới 1.2 giây khi không thay đổi phiên bản.
  • Dung lượng image: giảm từ hơn 450MB (nếu dùng Debian base) xuống còn ~160MB trên Alpine.

Hiệu năng BuildKit và độ trễ kiến trúc ARM vs AMD64

Bật Docker BuildKit (DOCKER_BUILDKIT=1) mang lại hai lợi thế lớn: phân tích cú pháp song song và khả năng mount cache thư mục npm (--mount=type=cache,target=/root/.npm). Nhờ đó, ngay cả khi cập nhật phiên bản package, thời gian cài đặt lại rút ngắn gần một nửa.

Khi thiết lập proxy để định tuyến linh hoạt sang OpenRouter, DeepSeek hay Ollama theo hướng dẫn từ ReviewLaptop, bạn cũng cần lưu ý kiến trúc CPU. Build native trên ARM (Apple Silicon, máy Linux ARM) cho tốc độ tương đương AMD64. Nhưng nếu dùng docker buildx cross-compile từ AMD64 sang ARM64 qua giả lập QEMU, thời gian build có thể kéo dài gấp 3 đến 4 lần.

Bạn đang chạy Claude Code Router trực tiếp bằng lệnh ccr code trên máy hay đóng gói riêng vào container để quản lý endpoint?

Top comments (0)