1FROM uniquenetwork/builder-polkadot:{{ UNIQUEWEST_MAINNET_BRANCH }} as polkadot2FROM uniquenetwork/builder-cumulus:{{ WESTMINT_BUILD_BRANCH }} as cumulus34# ===== Rust builder =====5FROM ubuntu:22.04 as rust-builder6LABEL maintainer="Unique.Network"78ENV CARGO_HOME="/cargo-home"9ENV PATH="/cargo-home/bin:$PATH"10ENV TZ=UTC11RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone1213RUN apt-get update && \14 apt-get install -y curl cmake pkg-config libssl-dev git clang llvm libudev-dev protobuf-compiler && \15 apt-get clean && \16 rm -r /var/lib/apt/lists/*1718RUN curl https://sh.rustup.rs -sSf | sh -s -- -y --default-toolchain none1920RUN rustup toolchain uninstall $(rustup toolchain list) && \21 rustup toolchain install {{ RUST_TOOLCHAIN }} && \22 rustup default {{ RUST_TOOLCHAIN }} && \23 rustup target list --installed && \24 rustup show25RUN rustup target add wasm32-unknown-unknown --toolchain {{ RUST_TOOLCHAIN }}2627RUN mkdir /unique_parachain28WORKDIR /unique_parachain2930# ===== BUILD ======31FROM rust-builder as builder-unique3233ARG BRANCH34ARG PROFILE=release3536WORKDIR /unique_parachain37#COPY . .3839RUN git clone -b {{ BRANCH }} https://github.com/UniqueNetwork/unique-chain.git . && \40# cd unique-chain && \41 cargo build --features=opal-runtime --$PROFILE4243# ===== RUN ======44FROM ubuntu:22.044546RUN apt-get -y update && \47 apt-get -y install curl git && \48 curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash && \49 export NVM_DIR="$HOME/.nvm" && \50 [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" && \51 nvm install v16.16.0 && \52 nvm use v16.16.05354RUN git clone https://github.com/uniquenetwork/polkadot-launch -b {{ POLKADOT_LAUNCH_BRANCH }}5556RUN export NVM_DIR="$HOME/.nvm" && \57 [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" && \58 cd /polkadot-launch && \59 npm install --global yarn && \60 yarn install6162COPY --from=builder-unique /unique_parachain/.docker/additional/xcm-rococo/launch-config-xcm-opal-rococo.json /polkadot-launch/launch-config.json63COPY --from=builder-unique /unique_parachain/.docker/xcm-config/5validators.jsonnet /polkadot-launch/5validators.jsonnet6465COPY --from=builder-unique /unique_parachain/target/release/unique-collator /unique-chain/target/release/66COPY --from=polkadot /unique_parachain/polkadot/target/release/polkadot /polkadot/target/release/67COPY --from=cumulus /unique_parachain/cumulus/target/release/polkadot-parachain /cumulus/target/release/cumulus68COPY --from=uniquenetwork/builder-chainql:latest /chainql/target/release/chainql /chainql/target/release/6970EXPOSE 984471EXPOSE 994472EXPOSE 994673EXPOSE 994774EXPOSE 99487576CMD export NVM_DIR="$HOME/.nvm" PATH="$PATH:/chainql/target/release" && \77 [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" && \78 cd /polkadot-launch && \79 yarn start launch-config.json