如何部署應用

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 8698:8698 your-app-name

請根據您的應用實際需求調整連接埠號及其他設定。