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

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

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