Update dockerfiles to take advantage of BuildKit.

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
docker
natter
natter_development

@ -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/

@ -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