独立部署
调整 address 和 port
添加 address 配置项,infrastructure/config/mod.rs:
@@ -24,6 +24,7 @@ pub struct CacheConfig {
 
 #[derive(Debug, Deserialize, Serialize)]
 pub struct ApplicationConfig {
+    pub address: String,
     pub port: i32,
     pub page_size: u32,
     pub token_secret: String,
置入配置值,config.toml:
@@ -1,4 +1,5 @@
 [app]
+address = "127.0.0.1"
 port = 8000
 page_size = 5
 token_secret = "I_Love_LiteRank"
应用这些配置值,main.rs:
@@ -17,7 +17,11 @@ fn rocket() -> _ {
     let wire_helper = application::WireHelper::new(&c).expect("Failed to create WireHelper");
     let r = adapter::make_router(&wire_helper);
     rocket::build()
-        .configure(rocket::Config::figment().merge(("port", c.app.port)))
+        .configure(
+            rocket::Config::figment()
+                .merge(("port", c.app.port))
+                .merge(("address", c.app.address)),
+        )
         .manage(r)
         .mount(
             "/",
构建步骤
添加 Makefile:
# Binary name
BINARY_NAME=lrbooks
.PHONY: lint
lint:
	@echo "Linting..."
	cargo clippy
build:
	@echo "Building $(BINARY_NAME)..."
	cargo build --release --bin $(BINARY_NAME)
Clippy 是 Rust 生态中知名的 lint 工具。
更新 Cargo.toml 以指定 bin:
@@ -3,6 +3,10 @@ name = "lr_rest_books_rust"
 version = "0.1.0"
 edition = "2021"
 
+[[bin]]
+name = "lrbooks"
+path = "src/main.rs"
+
执行 make build 以构建二进制文件:
make build
这等同于 cargo build --release --bin lrbooks。它将在项目 target/release 目录中创建一个名为 lrbooks 的二进制文件。
确保你根目录中有 config.toml 文件,且所有数据库都是启动就绪的状态。
然后,你可以按独立服务器的方式运行它:
./target/release/lrbooks
你将看到如下启动信息:
🚀 Rocket has launched from http://127.0.0.1:8000
用 curl 发送一些请求过去,你将看到一些成功响应。
干得漂亮!⭐️