From: Dessalines Date: Tue, 9 Nov 2021 22:16:59 +0000 (-0500) Subject: Updating rust musl images X-Git-Url: http://these/git/%7B%60%24%7BwebArchiveUrl%7D/%22%7B%7D/%22https:/nerdica.net/%7BtotpUrl%7D?a=commitdiff_plain;h=5b3be5c1021557abcc48aff10021087a37b6f218;p=lemmy.git Updating rust musl images --- diff --git a/.drone.yml b/.drone.yml index a4e44b33..87f123b1 100644 --- a/.drone.yml +++ b/.drone.yml @@ -9,7 +9,7 @@ platform: steps: - name: prepare repo - image: ekidd/rust-musl-builder:1.51.0 + image: clux/muslrust:1.56.0 user: root commands: - chown 1000:1000 . -R @@ -21,31 +21,32 @@ steps: - /root/.cargo/bin/cargo fmt -- --check - name: cargo clippy - image: ekidd/rust-musl-builder:1.51.0 + image: clux/muslrust:1.56.0 commands: + - rustup component add clippy - cargo clippy --workspace --tests --all-targets --all-features -- -D warnings -D deprecated -D clippy::perf -D clippy::complexity -D clippy::dbg_macro - cargo clippy --workspace -- -D clippy::unwrap_used - name: cargo test - image: ekidd/rust-musl-builder:1.51.0 + image: clux/muslrust:1.56.0 environment: LEMMY_DATABASE_URL: postgres://lemmy:password@database:5432/lemmy LEMMY_CONFIG_LOCATION: ../../config/config.hjson RUST_BACKTRACE: 1 RUST_TEST_THREADS: 1 commands: - - sudo apt-get update - - sudo apt-get -y install --no-install-recommends postgresql-client + - apt-get update + - apt-get -y install --no-install-recommends postgresql-client - cargo test --workspace --no-fail-fast - name: check defaults.hjson updated - image: ekidd/rust-musl-builder:1.51.0 + image: clux/muslrust:1.56.0 commands: - ./scripts/update_config_defaults.sh config/defaults_current.hjson - diff config/defaults.hjson config/defaults_current.hjson - name: cargo build - image: ekidd/rust-musl-builder:1.51.0 + image: clux/muslrust:1.56.0 commands: - cargo build - mv target/x86_64-unknown-linux-musl/debug/lemmy_server target/lemmy_server @@ -129,7 +130,7 @@ steps: - name: prepare repo # Not sure why, but rust ARM64 builds are failing on drone for rust:1.54 and later: # https://discourse.drone.io/t/arm-build-stalls-out-on-cloud-drone-io-ram-issue/9701 - image: rust:1.51-slim + image: rust:1.56-slim user: root commands: - chown 1000:1000 . -R @@ -138,7 +139,7 @@ steps: - git fetch --tags - name: cargo test - image: rust:1.51-slim + image: rust:1.56-slim environment: LEMMY_DATABASE_URL: postgres://lemmy:password@database:5432/lemmy LEMMY_CONFIG_LOCATION: ../../config/config.hjson @@ -152,7 +153,7 @@ steps: # Using Debian here because there seems to be no official Alpine-based Rust docker image for ARM. - name: cargo build - image: rust:1.51-slim + image: rust:1.56-slim commands: - apt-get update - apt-get -y install --no-install-recommends libssl-dev pkg-config libpq-dev diff --git a/docker/dev/Dockerfile b/docker/dev/Dockerfile index 732f9068..95329c01 100644 --- a/docker/dev/Dockerfile +++ b/docker/dev/Dockerfile @@ -1,43 +1,31 @@ -ARG RUST_BUILDER_IMAGE=ekidd/rust-musl-builder:1.51.0 +ARG RUST_BUILDER_IMAGE=clux/muslrust:1.56.0 -# Cargo chef plan -FROM $RUST_BUILDER_IMAGE as planner -WORKDIR /app +FROM $RUST_BUILDER_IMAGE as chef +USER root RUN cargo install cargo-chef +WORKDIR /app + +# Cargo chef plan +FROM chef as planner # Copy dirs -COPY ./ ./ +COPY . . -RUN sudo chown -R rust:rust . RUN cargo chef prepare --recipe-path recipe.json -# Cargo chef cache dependencies -FROM $RUST_BUILDER_IMAGE as cacher -ARG CARGO_BUILD_TARGET=x86_64-unknown-linux-musl -WORKDIR /app -RUN cargo install cargo-chef -COPY --from=planner /app/recipe.json ./recipe.json -RUN sudo chown -R rust:rust . -RUN cargo chef cook --target ${CARGO_BUILD_TARGET} --recipe-path recipe.json - -# Build the project -FROM $RUST_BUILDER_IMAGE as builder - +FROM chef as builder ARG CARGO_BUILD_TARGET=x86_64-unknown-linux-musl ARG RUSTRELEASEDIR="debug" -WORKDIR /app - -# Copy over the cached dependencies -COPY --from=cacher /app/target target -COPY --from=cacher /home/rust/.cargo /home/rust/.cargo +COPY --from=planner /app/recipe.json ./recipe.json +RUN cargo chef cook --recipe-path recipe.json --target ${CARGO_BUILD_TARGET} # Copy the rest of the dirs -COPY ./ ./ +COPY . . -RUN sudo chown -R rust:rust . +# Build the project RUN echo "pub const VERSION: &str = \"$(git describe --tag)\";" > "crates/utils/src/version.rs" -RUN cargo build +RUN cargo build --target ${CARGO_BUILD_TARGET} # reduce binary size RUN strip ./target/$CARGO_BUILD_TARGET/$RUSTRELEASEDIR/lemmy_server @@ -50,13 +38,8 @@ FROM alpine:3 as lemmy # Install libpq for postgres RUN apk add libpq -RUN addgroup -g 1000 lemmy -RUN adduser -D -s /bin/sh -u 1000 -G lemmy lemmy - # Copy resources -COPY --chown=lemmy:lemmy --from=builder /app/lemmy_server /app/lemmy +COPY --from=builder /app/lemmy_server /app/lemmy -RUN chown lemmy:lemmy /app/lemmy -USER lemmy EXPOSE 8536 CMD ["/app/lemmy"] diff --git a/docker/prod/Dockerfile b/docker/prod/Dockerfile index 2f3d278a..7257e868 100644 --- a/docker/prod/Dockerfile +++ b/docker/prod/Dockerfile @@ -1,5 +1,5 @@ # Build the project -FROM ekidd/rust-musl-builder:1.51.0 as builder +FROM clux/muslrust:1.56.0 as builder ARG CARGO_BUILD_TARGET=x86_64-unknown-linux-musl ARG RUSTRELEASEDIR="release" @@ -8,7 +8,6 @@ WORKDIR /app COPY ./ ./ -RUN sudo chown -R rust:rust . RUN echo "pub const VERSION: &str = \"$(git describe --tag)\";" > "crates/utils/src/version.rs" RUN cargo build --release @@ -23,13 +22,8 @@ FROM alpine:3 as lemmy # Install libpq for postgres RUN apk add libpq -RUN addgroup -g 1000 lemmy -RUN adduser -D -s /bin/sh -u 1000 -G lemmy lemmy - # Copy resources -COPY --chown=lemmy:lemmy --from=builder /app/lemmy_server /app/lemmy +COPY --from=builder /app/lemmy_server /app/lemmy -RUN chown lemmy:lemmy /app/lemmy -USER lemmy EXPOSE 8536 CMD ["/app/lemmy"]