1# ===== Rust builder =====2FROM phusion/baseimage:focal-1.1.0 as rust-builder3LABEL maintainer="Unique.Network"45ARG RUST_TOOLCHAIN={{ actual_toolchain }}6ARG 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 PROFILE='features=quartz-runtime --release'3839COPY . .40RUN cargo build --features=quartz-runtime --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.05859#ARG PROFILE='--features=quartz-runtime --release'6061RUN apt-get -y update && \62 apt-get -y upgrade && \63 apt-get -y install curl git && \64 curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash && \65 export NVM_DIR="$HOME/.nvm" && \66 [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" && \67 nvm install v15.5.0 && \68 nvm use v15.5.06970RUN git clone https://github.com/UniqueNetwork/polkadot-launch.git && \71 cd ./polkadot-launch && \72 git checkout feature/runtime-upgrade-testing7374RUN export NVM_DIR="$HOME/.nvm" && \75 [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" && \76 cd /polkadot-launch && \77 npm install --global yarn && \78 yarn7980COPY --from=builder-unique /unique_parachain/target/release/unique-collator /unique-chain/target/release/81COPY --from=builder-polkadot /unique_parachain/polkadot/target/release/polkadot /polkadot/target/release/8283COPY ["./launch-config.json", "/polkadot-launch/launch-config.json"]848586EXPOSE 984487EXPOSE 994488EXPOSE 993389EXPOSE 983390EXPOSE 4033391EXPOSE 303339293CMD export NVM_DIR="$HOME/.nvm" && \94 [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" && \95 cd /polkadot-launch && \96 yarn start launch-config.json