如何部署應用

Salvo 專案在編譯後是一個可執行檔案。部署時僅需要將這個可執行檔案和它依賴的靜態資源一起上傳到伺服器即可。

對於 Rust 類的專案,還有一個非常簡單的部署平台:shuttle.rs。shuttle 對 Salvo 類專案提供了支援,具體可以參考官方文件

Docker 部署

你也可以使用 Docker 來部署 Salvo 應用。以下是一個基礎的 Dockerfile 範例,你可以根據自己專案的需求進行調整:

# 構建階段
FROM rust:slim AS build
WORKDIR /app

# 複製依賴檔案先構建依賴(利用快取層)
COPY Cargo.toml Cargo.lock ./
RUN mkdir src && \
    echo 'fn main() { println!("Placeholder"); }' > src/main.rs && \
    cargo build --release

# 複製實際原始碼並構建應用
COPY src ./src/
RUN touch src/main.rs && \
    cargo build --release

# 運行階段使用精簡基礎鏡像
FROM debian:bookworm-slim
RUN apt-get update && \
    apt-get install -y --no-install-recommends ca-certificates && \
    apt-get clean && \
    rm -rf /var/lib/apt/lists/*

# 建立非root用戶運行應用
RUN useradd -ms /bin/bash appuser
USER appuser
WORKDIR /app

# 從構建階段複製二進位檔案
COPY --from=build /app/target/release/your_app_name ./app

# 設定容器啟動命令
CMD ["./app"]

使用說明

  1. 將上面的 Dockerfile 儲存在你的專案根目錄中
  2. 根據你的專案調整 your_app_name 為實際的二進位檔案名
  3. 如果你的應用需要靜態檔案(如模板、CSS、JS等),可以新增相應的 COPY 命令
  4. 如果你的應用需要環境變數配置,可以使用 ENV 指令
  5. 構建 Docker 鏡像:
    docker build -t your-app-name .
  6. 執行容器:
    docker run -p 5800:5800 your-app-name

請根據你的應用實際需求調整埠號和其他配置。