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 RUN apk add --no-cache musl-dev
@ -6,8 +8,8 @@ RUN mkdir /root/natter
WORKDIR /root/natter WORKDIR /root/natter
COPY . . COPY . .
# TODO: Add static build, which currently errors due to proc_macro. RUSTFLAGS="-C target-feature=+crt-static" # 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/ 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 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 rustfmt
RUN rustup component add clippy RUN rustup component add clippy
FROM builder AS javascript FROM builder AS javascript
RUN apk add --no-cache npm 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