Update dockerfiles to take advantage of BuildKit.
All checks were successful
clippy Build clippy has succeeded
format Build format has succeeded
rust-test Build rust-test has succeeded

This commit is contained in:
Tom Alexander 2024-10-20 21:47:03 -04:00
parent 2c9396615e
commit 4a76f61aa7
Signed by: talexander
GPG Key ID: D3A179C9A53C0EDE
2 changed files with 10 additions and 6 deletions

View File

@ -1,4 +1,6 @@
FROM rustlang/rust:nightly-alpine3.19 AS builder
ARG ALPINE_VERSION="3.20"
FROM rustlang/rust:nightly-alpine$ALPINE_VERSION AS builder
RUN apk add --no-cache musl-dev
@ -6,8 +8,8 @@ RUN mkdir /root/natter
WORKDIR /root/natter
COPY . .
# TODO: Add static build, which currently errors due to proc_macro. RUSTFLAGS="-C target-feature=+crt-static"
RUN CARGO_TARGET_DIR=/target cargo build --profile release-lto
RUN --mount=type=tmpfs,target=/tmp --mount=type=cache,target=/usr/local/cargo/registry,sharing=locked CARGO_TARGET_DIR=/target cargo build --profile release-lto
FROM alpine:3.19 AS runner
FROM alpine:$ALPINE_VERSION AS runner
COPY --from=builder /target/release-lto/natter /usr/bin/

View File

@ -1,11 +1,13 @@
FROM rustlang/rust:nightly-alpine3.19 AS builder
ARG ALPINE_VERSION="3.20"
FROM rustlang/rust:nightly-alpine$ALPINE_VERSION AS builder
RUN apk add --no-cache musl-dev
RUN cargo install --locked --no-default-features --features ci-autoclean cargo-cache
RUN --mount=type=tmpfs,target=/tmp --mount=type=cache,target=/usr/local/cargo/registry,sharing=locked cargo install --locked --no-default-features --features ci-autoclean cargo-cache
RUN rustup component add rustfmt
RUN rustup component add clippy
FROM builder AS javascript
RUN apk add --no-cache npm
RUN npm install --global prettier@3.1.0
RUN --mount=type=tmpfs,target=/tmp --mount=type=cache,target=/npmcache,sharing=locked npm set cache /npmcache && npm install --global prettier@3.1.0