30 lines
673 B
Docker
30 lines
673 B
Docker
FROM rust:1.96.1-alpine3.24 AS source
|
|
|
|
RUN apk add --no-cache musl-dev
|
|
WORKDIR /src
|
|
|
|
COPY Cargo.toml Cargo.lock ./
|
|
COPY config.example.toml ./
|
|
COPY src ./src
|
|
COPY static ./static
|
|
|
|
FROM source AS tester
|
|
RUN cargo test --locked --all-targets
|
|
|
|
FROM source AS builder
|
|
RUN cargo build --locked --release
|
|
|
|
FROM scratch
|
|
|
|
LABEL org.opencontainers.image.title="ushort" \
|
|
org.opencontainers.image.description="Self-contained URL shortener" \
|
|
org.opencontainers.image.source="https://git.xcel.me/cabbage/ushort"
|
|
|
|
WORKDIR /app
|
|
COPY --from=builder --chmod=0555 /src/target/release/ushort /ushort
|
|
|
|
USER 65532:65532
|
|
EXPOSE 8080
|
|
ENTRYPOINT ["/ushort"]
|
|
CMD ["/app/config.toml"]
|