$ today_i_learn
Biển học vô cùng
13 entries
6 chủ đề
March 2026
29
Sun
dưới local có thể chạy bình thường nhưng khi deploy nếu chỉ chạy lệnh kamal deploy thì server vẫn chạy phiên bản Ruby cũ. Để cập nhật phiên bản mới trên server giống với local thì cần sửa mục:
# deploy.yml
builder:
arch: amd64
args:
RUBY_VERSION: 4.0.0 <~~ Sửa thành phiên bản mới
# Dockerfile
ARG RUBY_VERSION=4.0.0 <~~ Sửa thành phiên bản mới
Sau đó chạy lệnh kamal deploy --no-cache để build lại image mới và deploy app. Nguyên lý của Kamal là build Docker image → push lên registry → server pull về chạy. Server khi deploy hay dùng bản cache cho lẹ, nên buộc mình phải chạy --no-cache để build bản mới.
Trong quá trình chạy có thể sẽ gặp vài gem không hỗ trợ Ruby mới (4) thì bạn phải tự cài tay lại (bằng bundle update [tên gem]). Trường hợp của mình là gem ffi (1.17.4) và pg (1.6.3).