Un projet Salvo, une fois compilé, devient un fichier exécutable. Pour le déployer, il suffit de télécharger cet exécutable ainsi que les ressources statiques dont il dépend sur le serveur.
Pour les projets Rust, il existe également une plateforme de déploiement très simple : shuttle.rs. Shuttle prend en charge les projets comme Salvo. Pour plus de détails, consultez la documentation officielle.
Déploiement avec Docker
Vous pouvez également utiliser Docker pour déployer une application Salvo. Voici un exemple de base de Dockerfile
que vous pouvez adapter selon les besoins de votre projet :
# Phase de construction
FROM rust:slim AS build
WORKDIR /app
# Copier d'abord les fichiers de dépendances pour construire les dépendances (en profitant du cache)
COPY Cargo.toml Cargo.lock ./
RUN mkdir src && \
echo 'fn main() { println!("Placeholder"); }' > src/main.rs && \
cargo build --release
# Copier le code source réel et construire l'application
COPY src ./src/
RUN touch src/main.rs && \
cargo build --release
# Phase d'exécution avec une image de base légère
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/*
# Créer un utilisateur non-root pour exécuter l'application
RUN useradd -ms /bin/bash appuser
USER appuser
WORKDIR /app
# Copier le binaire depuis la phase de construction
COPY --from=build /app/target/release/your_app_name ./app
# Définir la commande de démarrage du conteneur
CMD ["./app"]
Mode d'emploi
- Enregistrez le
Dockerfile
ci-dessus à la racine de votre projet
- Ajustez
your_app_name
au nom réel de votre fichier binaire
- Si votre application nécessite des fichiers statiques (comme des templates, CSS, JS, etc.), ajoutez les commandes
COPY
appropriées
- Si votre application a besoin de variables d'environnement, utilisez l'instruction
ENV
- Construisez l'image Docker :
docker build -t your-app-name .
- Exécutez le conteneur :
docker run -p 5800:5800 your-app-name
Ajustez le numéro de port et les autres configurations selon les besoins réels de votre application.