difftreelog
Merge pull request #14 from lzadjsf/core-ci-step-2
in: master
SpeedUp build by adding cargo-chef into Dockerfile.
1 file changed
.docker/Dockerfile-parachaindiffbeforeafterboth1# ===== Rust builder =====2FROM phusion/baseimage:focal-1.1.0 as rust-builder3LABEL maintainer="Unique.Network"45ARG RUST_TOOLCHAIN=nightly-2022-05-116ARG POLKA_VERSION=release-v0.9.24789ENV RUST_TOOLCHAIN $RUST_TOOLCHAIN10ENV POLKA_VERSION $POLKA_VERSION1112ENV CARGO_HOME="/cargo-home"13ENV PATH="/cargo-home/bin:$PATH"1415RUN curl https://sh.rustup.rs -sSf | sh -s -- -y --default-toolchain none1617RUN apt-get update && \18 apt-get dist-upgrade -y -o Dpkg::Options::="--force-confold" && \19 apt-get install -y cmake pkg-config libssl-dev git clang2021RUN rustup toolchain uninstall $(rustup toolchain list) && \22 rustup toolchain install $RUST_TOOLCHAIN && \23 rustup default $RUST_TOOLCHAIN && \24 rustup target list --installed && \25 rustup show26RUN rustup target add wasm32-unknown-unknown --toolchain $RUST_TOOLCHAIN2728####works inside repo folder###293031# ===== BUILD ======32FROM rust-builder as builder-unique3334RUN mkdir unique_parachain35WORKDIR /unique_parachain3637ARG FEATURE=' '3839COPY . .40RUN cargo build $FEATURE --release41 # && \42 # cargo test4344# ===== BUILD POLKADOT =====45FROM rust-builder as builder-polkadot4647RUN mkdir unique_parachain48WORKDIR /unique_parachain4950RUN git clone -b $POLKA_VERSION --depth 1 https://github.com/paritytech/polkadot.git && \51 cd polkadot && \52 git tag -n && \53 cargo build --release5455# ===== RUN ======5657FROM phusion/baseimage:focal-1.1.05859RUN apt-get -y update && \60 apt-get -y upgrade && \61 apt-get -y install curl git && \62 curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash && \63 export NVM_DIR="$HOME/.nvm" && \64 [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" && \65 nvm install v15.5.0 && \66 nvm use v15.5.06768RUN git clone https://github.com/UniqueNetwork/polkadot-launch.git && \69 cd /polkadot-launch && \70 git checkout feature/runtime-upgrade-testing7172RUN export NVM_DIR="$HOME/.nvm" && \73 [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" && \74 cd /polkadot-launch && \75 npm install --global yarn && \76 yarn7778COPY --from=builder-unique /unique_parachain/target/release/unique-collator /unique-chain/target/release/79COPY --from=builder-polkadot /unique_parachain/polkadot/target/release/polkadot /polkadot/target/release/8081COPY ["./launch-config.json", "/polkadot-launch/launch-config.json"]828384EXPOSE 984485EXPOSE 994486EXPOSE 993387EXPOSE 983388EXPOSE 4033389EXPOSE 303339091CMD export NVM_DIR="$HOME/.nvm" && \92 [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" && \93 cd /polkadot-launch && \94 yarn start launch-config.json1# ===== Rust builder =====2FROM phusion/baseimage:focal-1.1.0 as rust-builder3LABEL maintainer="Unique.Network"45ARG RUST_TOOLCHAIN=nightly-2022-05-116ARG POLKA_VERSION=release-v0.9.24789ENV RUST_TOOLCHAIN $RUST_TOOLCHAIN10ENV POLKA_VERSION $POLKA_VERSION1112ENV CARGO_HOME="/cargo-home"13ENV PATH="/cargo-home/bin:$PATH"1415RUN curl https://sh.rustup.rs -sSf | sh -s -- -y --default-toolchain none1617RUN apt-get update && \18 apt-get dist-upgrade -y -o Dpkg::Options::="--force-confold" && \19 apt-get install -y cmake pkg-config libssl-dev git clang && \20 apt-get clean && \21 rm -r /var/lib/apt/lists/*2223RUN rustup toolchain uninstall $(rustup toolchain list) && \24 rustup toolchain install $RUST_TOOLCHAIN && \25 rustup default $RUST_TOOLCHAIN && \26 rustup target list --installed && \27 rustup show28RUN rustup target add wasm32-unknown-unknown --toolchain $RUST_TOOLCHAIN293031RUN cargo install cargo-chef3233RUN mkdir unique_parachain34WORKDIR /unique_parachain3536# ===== Chef =====37FROM rust-builder as chef3839COPY . .40RUN cargo chef prepare --recipe-path recipe.json4142####works inside repo folder###434445# ===== BUILD ======46FROM rust-builder as builder-unique4748RUN mkdir unique_parachain49WORKDIR /unique_parachain5051COPY --from=chef /unique_parachain/recipe.json recipe.json5253RUN cargo chef cook --release --recipe-path recipe.json5455ARG FEATURE=' '5657COPY . .58RUN cargo build $FEATURE --release59 # && \60 # cargo test6162# ===== BUILD POLKADOT =====63FROM rust-builder as builder-polkadot6465RUN mkdir unique_parachain66WORKDIR /unique_parachain6768RUN git clone -b $POLKA_VERSION --depth 1 https://github.com/paritytech/polkadot.git && \69 cd polkadot && \70 git tag -n && \71 cargo build --release7273# ===== RUN ======7475FROM phusion/baseimage:focal-1.1.07677RUN apt-get -y update && \78 apt-get -y upgrade && \79 apt-get -y install curl git && \80 curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash && \81 export NVM_DIR="$HOME/.nvm" && \82 [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" && \83 nvm install v15.5.0 && \84 nvm use v15.5.08586RUN git clone https://github.com/UniqueNetwork/polkadot-launch.git && \87 cd /polkadot-launch && \88 git checkout feature/runtime-upgrade-testing8990RUN export NVM_DIR="$HOME/.nvm" && \91 [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" && \92 cd /polkadot-launch && \93 npm install --global yarn && \94 yarn9596COPY --from=builder-unique /unique_parachain/target/release/unique-collator /unique-chain/target/release/97COPY --from=builder-polkadot /unique_parachain/polkadot/target/release/polkadot /polkadot/target/release/9899COPY ["./launch-config.json", "/polkadot-launch/launch-config.json"]100101102EXPOSE 9844103EXPOSE 9944104EXPOSE 9933105EXPOSE 9833106EXPOSE 40333107EXPOSE 30333108109CMD export NVM_DIR="$HOME/.nvm" && \110 [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" && \111 cd /polkadot-launch && \112 yarn start launch-config.json