Cách chứa ứng dụng Rust với Docker
Công-te-nơ hóa mang lại những lợi ích thiết yếu về tính di động, cách ly và hiệu quả. Nó cho phép triển khai nhất quán các ứng dụng trên nhiều môi trường khác nhau và đảm bảo tính bảo mật và ổn định thông qua cách ly ứng dụng. Nó cũng tối ưu hóa việc sử dụng tài nguyên, đơn giản hóa quy trình phát triển và quản lý, đồng thời nâng cao khả năng mở rộng.
Chứa các ứng dụng Rust bằng Docker cung cấp một phương tiện đáng tin cậy và hiệu quả để đóng gói các ứng dụng và phần phụ thuộc của chúng vào các môi trường khép kín và di động. Nó cho phép thực thi liền mạch trên nhiều hệ thống khác nhau mà không cần quan tâm đến cơ sở hạ tầng bên dưới.
Mục Lục
Thiết lập một máy chủ web đơn giản trong Rust với Actix
Bạn có thể thiết lập một máy chủ web đơn giản trong Rust bằng Actix và chứa ứng dụng của bạn bằng Docker. Bạn sẽ hiển thị một cổng từ nơi bạn sẽ truy cập máy chủ để nhận yêu cầu.
Chạy lệnh này để tạo một dự án Rust mới với trình quản lý gói Cargo:
cargo new my-app
Khi bạn tạo một dự án Rust mới, Cargo sẽ thêm hàng hóa.toml tập tin vào thư mục gốc của dự án của bạn. Mở hàng hóa.toml tệp và thêm thùng Actix vào phụ thuộc phần như vậy:
[dependencies]
actix-web = "4.3.1"
Đây là cách bạn có thể thiết lập một máy chủ đơn giản trong Rust với thùng Actix:
use actix_web::{get, App, HttpResponse, HttpServer, Responder};#[get("https://www.smartreviewaz.com/")]
async fn hello() -> impl Responder {
HttpResponse::Ok().body("Hello, World!")
}
#[actix_web::main]
async fn main() -> std::io::Result<()> {
HttpServer::new(|| {
App::new().service(hello)
}).bind("127.0.0.1:8080")?.run().await
}
Chương trình thiết lập Máy chủ web HTTP cơ bản với Actix. Các Xin chào chức năng là một chức năng xử lý đáp ứng các yêu cầu GET trên cổng 8080 với “Xin chào, Thế giới!”.
Các chủ yếu chức năng thiết lập một phiên bản máy chủ với Máy chủ http::mới chức năng và liên kết máy chủ để chạy trên địa chỉ localhost 127.0.0.1:8080.
Bây giờ, hãy thực hiện chạy hàng lệnh để chạy máy chủ web. Đây là kết quả của việc mở địa chỉ trên trình duyệt web.
Viết một Dockerfile cho ứng dụng Rust của bạn
Để chứa ứng dụng Rust của bạn bằng Docker, bạn phải tạo một Dockerfile và xác định các lệnh cho quá trình container hóa.
Các Dockerfile không có phần mở rộng; bạn chỉ cần tạo một Dockerfile tài liệu. Bạn cũng có thể tạo một .dockerignore tệp thành các tệp trừu tượng trong thư mục làm việc của bạn từ quá trình xây dựng của bạn.
Xác định các lệnh trong Dockerfile của bạn
Của bạn Dockerfile sẽ chứa các lệnh lấy hình ảnh cơ sở từ kho lưu trữ Docker, đặt thư mục làm việc, sao chép tệp, xây dựng phần phụ thuộc, xây dựng ứng dụng, tạo hình ảnh tối thiểu, xuất cổng và chạy ứng dụng.
FROM rust:latest
WORKDIR /usr/src/my-app
COPY . .
RUN cargo build
CMD cargo run
Sau khi xác định các lệnh bắt buộc để chứa ứng dụng của bạn, bạn có thể tạo vùng chứa bằng lệnh này:
docker build -t my-app .
Lệnh xây dựng hình ảnh Docker cho bạn ứng dụng của tôi ứng dụng có thẻ ứng dụng của tôi từ thư mục hiện tại.
Bạn có thể dùng docker chạy lệnh để chạy hình ảnh Docker của bạn.
docker run -p 8080:8080 my-app
Các -p 8080:8080 tùy chọn ánh xạ cổng 8080 của máy chủ sang cổng 8080 của bộ chứa. Docker sẽ chuyển tiếp lưu lượng được chuyển hướng đến cổng 8080 trên máy chủ đến cổng 8080 trong bộ chứa.
Bạn có thể gửi yêu cầu tới vùng chứa thông qua cổng localhost 8080 để gọi máy chủ web.
Docker Compose cho phép điều phối nhiều vùng chứa
Làm việc với nhiều vùng chứa là một nhiệm vụ phổ biến khi xây dựng các ứng dụng Docker phức tạp. Bạn có thể sử dụng Docker Compose để làm việc với nhiều Docker container.
Docker Compose cung cấp chức năng xác định các dịch vụ tạo nên ứng dụng của bạn, chỉ định các quan hệ phụ thuộc giữa các dịch vụ, xác định các biến môi trường cho từng dịch vụ, bắt đầu, dừng, khởi động lại, thay đổi quy mô vùng chứa của ứng dụng và các chức năng khác.