1ARG CHAIN=opal2ARG LAUNCH_CONFIG_FILE=launch-config-xcm-opal-rococo.json34# ===== Rust builder =====5FROM ubuntu:20.04 as rust-builder6LABEL maintainer="Unique.Network"78ARG RUST_TOOLCHAIN9ENV RUST_TOOLCHAIN $RUST_TOOLCHAIN10ENV CARGO_HOME="/cargo-home"11ENV PATH="/cargo-home/bin:$PATH"12ENV TZ=UTC13RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone1415RUN apt-get update && \16 apt-get install -y curl cmake pkg-config libssl-dev git clang llvm libudev-dev protobuf-compiler && \17 apt-get clean && \18 rm -r /var/lib/apt/lists/*1920RUN curl https://sh.rustup.rs -sSf | sh -s -- -y --default-toolchain none2122RUN rustup toolchain uninstall $(rustup toolchain list) && \23 rustup toolchain install ${RUST_TOOLCHAIN} && \24 rustup default ${RUST_TOOLCHAIN} && \25 rustup target list --installed && \26 rustup show27RUN rustup target add wasm32-unknown-unknown --toolchain ${RUST_TOOLCHAIN}2829RUN mkdir /unique_parachain30WORKDIR /unique_parachain3132# ===== BUILD ======33FROM rust-builder as builder-unique3435ARG UNIQUE_BRANCH36ARG CHAIN37ARG LAUNCH_CONFIG_FILE38ARG PROFILE=release3940WORKDIR /unique_parachain41#COPY . .4243RUN git clone -b ${UNIQUE_BRANCH} https://github.com/UniqueNetwork/unique-chain.git . && \44# cd unique-chain && \45 cargo build --features=${CHAIN}-runtime --$PROFILE4647# ===== RUN ======48FROM ubuntu:20.044950ARG POLKADOT_LAUNCH_BRANCH51ARG LAUNCH_CONFIG_FILE52ENV POLKADOT_LAUNCH_BRANCH $POLKADOT_LAUNCH_BRANCH53ENV LAUNCH_CONFIG_FILE $LAUNCH_CONFIG_FILE5455RUN apt-get -y update && \56 apt-get -y install curl git && \57 curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash && \58 export NVM_DIR="$HOME/.nvm" && \59 [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" && \60 nvm install v16.16.0 && \61 nvm use v16.16.06263RUN git clone https://github.com/uniquenetwork/polkadot-launch -b ${POLKADOT_LAUNCH_BRANCH}6465RUN export NVM_DIR="$HOME/.nvm" && \66 [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" && \67 cd /polkadot-launch && \68 npm install --global yarn && \69 yarn install7071COPY --from=builder-unique /unique_parachain/.docker/xcm-config/${LAUNCH_CONFIG_FILE} /polkadot-launch/7273COPY --from=builder-unique /unique_parachain/target/release/unique-collator /unique-chain/target/release/74COPY --from=uniquenetwork/builder-polkadot:${POLKADOT_BUILD_BRANCH} /unique_parachain/polkadot/target/release/polkadot /polkadot/target/release/75COPY --from=uniquenetwork/builder-cumulus:${STATEMINE_BUILD_BRANCH} /unique_parachain/cumulus/target/release/polkadot-parachain /cumulus/target/release/cumulus76COPY --from=uniquenetwork/builder-chainql:latest /chainql/target/release/chainql /chainql/target/release/7778EXPOSE 984479EXPOSE 994480EXPOSE 994681EXPOSE 994782EXPOSE 99488384CMD export NVM_DIR="$HOME/.nvm" PATH="$PATH:/chainql/target/release" && \85 [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" && \86 cd /polkadot-launch && \87 yarn start ${LAUNCH_CONFIG_FILE}