This is a mobile optimized page that loads fast, if you want to load the real page, click this text.

Chia sẻ Chạy, triển khai web app resource sử dụng docker + tomcat trên railway.app

transistor

Gà con
Xin chào mọi người, vì diễn đàn khá ít người truy cập vào đây nên mình mới mạnh dạn đăng bài mục đích để lưu trữ cho riêng mình khi cần và chia sẻ cho những ai chưa biết. Sai sót chỗ nào thì mong được góp ý.
Nói sơ qua về mục đích: Khi mới đóng gói ứng dụng web back end trong Java với framework là Spring Boot thì tệp được đóng gói sẽ có phần mở rộng là "*.war", chúng ta có thể sử dụng xampp để chạy trực tiếp package đó. Nhưng để truy cập từ một nơi khác thì không thể, vậy nên bài viết này ra đời

Những thứ cần có:
- Tài khoản github
- Internet

Bắt đầu thôi:

- Đăng nhập https://railway.app/ sử dụng tài khoản github.
- Tạo một thư mục mới chứa package cần triển khai, bạn có thể đổi tên package cho bớt phức tạp. Sau đó tạo một file mới với tên là "Dockerfile" không có dấu ngoặc nháy ("). Sử dụng VSCode hoặc notepad để chỉnh sửa file "Dockerfile" với nội dung:
Mã:
#Start from here
FROM tomcat:8.5.85-jdk17-temurin-focal
RUN rm -rf /usr/local/tomcat/webapps/*
COPY ./api.war /usr/local/tomcat/webapps/
#End

- Giải thích code một chút:
+ FROM tomcat:8.5.85-jdk17-temurin-focal : đoạn này khi chạy nó sẽ pull về tomcat phiên bản 8.5.85, nếu code của bạn chạy trên tomcat bản nào thì thay đổi theo bản đó, bạn có thể tìm thêm ở đây: https://hub.docker.com/_/tomcat
+ RUN rm -rf /usr/local/tomcat/webapps/* : Đoạn này sẽ xóa sạch những gì đang có ở trong đường dẫn đến thư mục webapps, nếu không cần xóa thì có thể bỏ qua dòng này
+ COPY ./api.war /usr/local/tomcat/webapps/ : Đoạn này sẽ sao chép package vào thư mục webapps của tomcat khi chạy, ở đây mình để package tên là api.war, nếu package của bạn tên khác thì hãy sửa cho đúng với tên package của bạn.



- Tiếp theo tạo một repository trên github và push thư mục vừa tạo lên( Lưu ý repository phải để public).

- Quay trở lại Railway.app, chọn new project, chọn Deploy from github repo và chọn và Repository bạn mới push ở trên




- Tiếp tục rồi vào cài đặt của nó, rồi chọn Variables, thêm một variable mới là PORT 8080, nếu không có cái này thì app sẽ deploy lỗi.



- Chuyển qua phần Settings và tìm đến Domains rồi chọn Custom Domain, đó sẽ là đường dẫn tới API của bạn. Giờ bạn có thể truy cập API theo đường dẫn đó và path sẽ là "url của bạn/tên package mà bạn đặt". Ví dụ của mình là "https://my.up.railway.app/api"

- Vậy là xong, hy vọng sẽ giúp được ai cần

- Theo mình được biết thì cái thằng Railway.app này sẽ cho người dùng miễn phí 500h uptime và 5$ mỗi tháng( cái 5$ thì không biết có đúng không , tại thấy bọn nó ghi như thế).
Đối với những dự án nhỏ hoặc test app thì như thế là quá ổn rồi