アプリケーションのデプロイ方法

Salvoプロジェクトはコンパイル後に単一の実行可能ファイルとなります。デプロイ時には、この実行可能ファイルと依存する静的リソースをサーバーにアップロードするだけで完了します。

Rustプロジェクト向けには、非常にシンプルなデプロイプラットフォーム shuttle.rs も利用可能です。shuttleはSalvoプロジェクトをサポートしており、詳細は公式ドキュメントをご参照ください。

Dockerによるデプロイ

SalvoアプリケーションのデプロイにはDockerも使用できます。以下は基本的な 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

アプリケーションの実際の要件に応じて、ポート番号やその他の設定を調整してください。