31 lines
892 B
Docker
31 lines
892 B
Docker
FROM lukemathwalker/cargo-chef:latest-rust-alpine AS chef
|
|
WORKDIR /src
|
|
|
|
FROM chef AS planner
|
|
COPY . .
|
|
# Create dependencies
|
|
RUN cargo chef prepare --recipe-path /src/recipe.json
|
|
|
|
FROM chef AS builder
|
|
COPY --from=planner /src/recipe.json /src/recipe.json
|
|
# Build dependencies
|
|
RUN cargo chef cook --release --recipe-path /src/recipe.json
|
|
# Build application
|
|
COPY . .
|
|
RUN cargo build --release --bin player-Rust
|
|
|
|
# Use scratch image to reduce image size
|
|
FROM scratch
|
|
ARG version=0.1.0
|
|
ARG release=unreleased
|
|
LABEL name="player-Rust" \
|
|
maintainer="Fachschaft IT, HS-Esslingen" \
|
|
version=${version} \
|
|
release=${release} \
|
|
summary="A client for BitWars written in Rust using Tokio" \
|
|
description="A client for BitWars written in Rust using the Axum webserver with Tokio runtime"
|
|
EXPOSE 3000
|
|
|
|
COPY --from=builder /src/target/release/player-Rust /
|
|
CMD ["./player-Rust"]
|