Anwendungsbereitstellung

Ein kompiliertes Salvo-Projekt ist eine ausführbare Datei. Für die Bereitstellung müssen Sie lediglich diese ausführbare Datei zusammen mit den benötigten statischen Ressourcen auf den Server hochladen.

Für Rust-Projekte gibt es auch eine sehr einfache Bereitstellungsplattform: shuttle.rs. Shuttle bietet Unterstützung für Salvo-Projekte. Weitere Details finden Sie in der offiziellen Dokumentation.

Docker-Bereitstellung

Sie können Salvo-Anwendungen auch mit Docker bereitstellen. Hier ist ein grundlegendes Beispiel für eine Dockerfile, die Sie entsprechend Ihren Projektanforderungen anpassen können:

# Build-Phase
FROM rust:slim AS build
WORKDIR /app

# Abhängigkeiten zuerst kopieren (Nutzen der Cache-Schichten)
COPY Cargo.toml Cargo.lock ./
RUN mkdir src && \
    echo 'fn main() { println!("Placeholder"); }' > src/main.rs && \
    cargo build --release

# Eigentlichen Quellcode kopieren und Anwendung bauen
COPY src ./src/
RUN touch src/main.rs && \
    cargo build --release

# Runtime-Phase mit schlanker Basis-Image
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/*

# Nicht-Root-Benutzer für Anwendungsbetrieb erstellen
RUN useradd -ms /bin/bash appuser
USER appuser
WORKDIR /app

# Binärdatei aus Build-Phase kopieren
COPY --from=build /app/target/release/your_app_name ./app

# Container-Startbefehl festlegen
CMD ["./app"]

Anleitung

  1. Speichern Sie die obige Dockerfile im Stammverzeichnis Ihres Projekts
  2. Passen Sie your_app_name an den tatsächlichen Namen Ihrer Binärdatei an
  3. Falls Ihre Anwendung statische Dateien benötigt (z.B. Templates, CSS, JS), fügen Sie entsprechende COPY-Befehle hinzu
  4. Bei Bedarf an Umgebungsvariablen können Sie ENV-Anweisungen verwenden
  5. Docker-Image erstellen:
    docker build -t your-app-name .
  6. Container ausführen:
    docker run -p 5800:5800 your-app-name

Passen Sie Portnummern und andere Konfigurationen entsprechend den Anforderungen Ihrer Anwendung an.