アプリケーションのデプロイ方法
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"]
使用方法
- 上記の
Dockerfile
をプロジェクトルートディレクトリに保存
your_app_name
を実際のバイナリファイル名に変更
- アプリケーションで静的ファイル(テンプレート、CSS、JSなど)が必要な場合、適切な
COPY
コマンドを追加
- 環境変数設定が必要な場合は
ENV
指令を使用
- Dockerイメージをビルド:
docker build -t your-app-name .
- コンテナを実行:
docker run -p 5800:5800 your-app-name
アプリケーションの実際の要件に応じてポート番号やその他の設定を調整してください。