1# ===== Rust builder =====2FROM ubuntu:20.04 as rust-builder3LABEL maintainer="Unique.Network"45ENV CARGO_HOME="/cargo-home"6ENV PATH="/cargo-home/bin:$PATH"7ENV TZ=UTC8RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone910RUN apt-get update && \11 apt-get install -y curl cmake pkg-config libssl-dev git clang llvm libudev-dev protobuf-compiler && \12 apt-get clean && \13 rm -r /var/lib/apt/lists/*1415RUN curl https://sh.rustup.rs -sSf | sh -s -- -y --default-toolchain none1617RUN rustup toolchain uninstall $(rustup toolchain list) && \18 rustup toolchain install {{ RUST_TOOLCHAIN }} && \19 rustup default {{ RUST_TOOLCHAIN }} && \20 rustup target list --installed && \21 rustup show22RUN rustup target add wasm32-unknown-unknown --toolchain {{ RUST_TOOLCHAIN }}2324RUN mkdir /unique_parachain25WORKDIR /unique_parachain2627# ===== BUILD ======28FROM rust-builder as builder-unique2930ARG PROFILE=release3132WORKDIR /unique_parachain3334COPY ./xcm-config/launch-config-xcm-{{ NETWORK }}.json ./launch-config-xcm-{{ NETWORK }}.json35COPY ./xcm-config/5validators.jsonnet ./5validators.jsonnet36COPY ./xcm-config/minBondFix.jsonnet ./minBondFix.jsonnet3738RUN git clone -b {{ BRANCH }} https://github.com/UniqueNetwork/unique-chain.git && \39 cd unique-chain && \40 cargo build --features={{ NETWORK }}-runtime --$PROFILE4142# ===== RUN ======4344FROM ubuntu:20.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/launch-config-xcm-{{ NETWORK }}.json /polkadot-launch/63COPY --from=builder-unique /unique_parachain/5validators.jsonnet /polkadot-launch/5validators.jsonnet64COPY --from=builder-unique /unique_parachain/minBondFix.jsonnet /polkadot-launch/minBondFix.jsonnet6566COPY --from=builder-unique /unique_parachain/unique-chain/target/release/unique-collator /unique-chain/target/release/6768COPY --from=uniquenetwork/builder-polkadot:{{ POLKADOT_BUILD_BRANCH }} /unique_parachain/polkadot/target/release/polkadot /polkadot/target/release/69COPY --from=uniquenetwork/builder-moonbeam:{{ MOONBEAM_BUILD_BRANCH }} /unique_parachain/moonbeam/target/release/moonbeam /moonbeam/target/release/70COPY --from=uniquenetwork/builder-cumulus:{{ CUMULUS_BUILD_BRANCH }} /unique_parachain/cumulus/target/release/polkadot-parachain /cumulus/target/release/cumulus71COPY --from=uniquenetwork/builder-acala:{{ ACALA_BUILD_BRANCH }} /unique_parachain/Acala/target/production/acala /acala/target/release/72COPY --from=uniquenetwork/builder-chainql:latest /chainql/target/release/chainql /chainql/target/release/7374EXPOSE 984475EXPOSE 993376EXPOSE 994477EXPOSE 994678EXPOSE 994779EXPOSE 99488081CMD export NVM_DIR="$HOME/.nvm" PATH="$PATH:/chainql/target/release" && \82 [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" && \83 cd /polkadot-launch && \84 yarn start launch-config-xcm-{{ NETWORK }}.json