github.com/grafana/pyroscope@v1.18.0/examples/language-sdk-instrumentation/rust/rideshare/Dockerfile (about)

     1  FROM rust:latest as deps
     2  
     3  WORKDIR /usr/src/server
     4  # Copy only files needed for dependency resolution
     5  COPY server/Cargo.toml server/Cargo.lock ./
     6  # Create a dummy main.rs to compile dependencies
     7  RUN mkdir src && \
     8      echo "fn main() {}" > src/main.rs && \
     9      cargo build --release && \
    10      rm -rf src
    11  
    12  FROM deps as builder
    13  # Now copy the actual source code
    14  COPY server/src ./src
    15  # Build the application
    16  RUN cargo install --profile release --path .
    17  
    18  FROM rust:slim as runtime
    19  COPY --from=builder /usr/local/cargo/bin/server /usr/local/bin/server
    20  EXPOSE 5000
    21  CMD ["server"]