From 547bb74cad58ef0d1b2401c1f22a6e98e1fba1ce Mon Sep 17 00:00:00 2001 From: Konstantin Astakhov Date: Mon, 29 Aug 2022 18:30:38 +0000 Subject: [PATCH] add jinja for dockerfile --- --- a/.docker/Dockerfile-xcm +++ b/.docker/Dockerfile-xcm @@ -93,7 +93,7 @@ RUN git clone -b $CUMULUS_BUILD_BRANCH --depth 1 https://github.com/paritytech/cumulus.git && \ cd cumulus && \ - cargo build --release --locked -p polkadot-parachain + cargo build --release # ===== BUILD CHAINQL ===== FROM rust-builder as builder-chainql --- /dev/null +++ b/.docker/Dockerfile-xcm-2 @@ -0,0 +1,150 @@ +# ===== Rust builder ===== +FROM ubuntu:20.04 as rust-builder +LABEL maintainer="Unique.Network" + +#ARG RUST_TOOLCHAIN= + +#ENV RUST_TOOLCHAIN $RUST_TOOLCHAIN +ENV CARGO_HOME="/cargo-home" +ENV PATH="/cargo-home/bin:$PATH" +ENV TZ=UTC +RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone + +RUN apt-get update && \ + apt-get install -y curl cmake pkg-config libssl-dev git clang llvm libudev-dev && \ + apt-get clean && \ + rm -r /var/lib/apt/lists/* + +RUN curl https://sh.rustup.rs -sSf | sh -s -- -y --default-toolchain none + +RUN rustup toolchain uninstall $(rustup toolchain list) && \ + rustup toolchain install {{ RUST_TOOLCHAIN }} && \ + rustup default {{ RUST_TOOLCHAIN }} && \ + rustup target list --installed && \ + rustup show +RUN rustup target add wasm32-unknown-unknown --toolchain {{ RUST_TOOLCHAIN }} + +RUN mkdir /unique_parachain +WORKDIR /unique_parachain + + +# ===== BUILD ====== +FROM rust-builder as builder-unique + +ARG PROFILE=release +#ARG FEATURE= +#ARG BRANCH= + +WORKDIR /unique_parachain + +COPY ./xcm-config/launch-config-xcm-{{ NETWORK }}.json ./launch-config-xcm-{{ NETWORK }}.json +COPY ./xcm-config/5validators.jsonnet ./5validators.jsonnet + +RUN git clone -b {{ BRANCH }} https://github.com/UniqueNetwork/unique-chain.git && \ + cd unique-chain && \ + cargo build --features={{ FEATURE }} --$PROFILE + +# ===== BUILD POLKADOT ===== +FROM rust-builder as builder-polkadot + +#ARG POLKADOT_BUILD_BRANCH= +#ENV POLKADOT_BUILD_BRANCH $POLKADOT_BUILD_BRANCH + + +WORKDIR /unique_parachain + +RUN git clone -b {{ POLKADOT_BUILD_BRANCH }} --depth 1 https://github.com/paritytech/polkadot.git && \ + cd polkadot && \ + cargo build --release + +# ===== BUILD ACALA ===== +FROM rust-builder as builder-acala + +#ARG ACALA_BUILD_BRANCH= +#ENV ACALA_BUILD_BRANCH $ACALA_BUILD_BRANCH + + +WORKDIR /unique_parachain + +RUN git clone -b {{ ACALA_BUILD_BRANCH }} --depth 1 https://github.com/AcalaNetwork/Acala.git && \ + cd Acala && \ + make init && \ + make build-release + +# ===== BUILD MOONBEAM ===== +FROM rust-builder as builder-moonbeam + +#ARG MOONBEAM_BUILD_BRANCH= +#ENV MOONBEAM_BUILD_BRANCH $MOONBEAM_BUILD_BRANCH + + +WORKDIR /unique_parachain + +RUN git clone -b {{ MOONBEAM_BUILD_BRANCH }} --depth 1 https://github.com/PureStake/moonbeam.git && \ + cd moonbeam && \ + cargo build --release + +# ===== BUILD CUMULUS ===== +FROM rust-builder as builder-cumulus + +#ARG CUMULUS_BUILD_BRANCH= +#ENV CUMULUS_BUILD_BRANCH $CUMULUS_BUILD_BRANCH + + +WORKDIR /unique_parachain + +RUN git clone -b {{ CUMULUS_BUILD_BRANCH }} --depth 1 https://github.com/paritytech/cumulus.git && \ + cd cumulus && \ + cargo build --release + +# ===== BUILD CHAINQL ===== +FROM rust-builder as builder-chainql + +RUN mkdir chainql +WORKDIR /chainql + +RUN git clone -b v0.1.0 --depth 1 https://github.com/CertainLach/chainql.git . && \ + cargo build --release + +# ===== RUN ====== + +FROM ubuntu:20.04 + +#ARG POLKADOT_LAUNCH_BRANCH= +#ENV POLKADOT_LAUNCH_BRANCH $POLKADOT_LAUNCH_BRANCH + +RUN apt-get -y update && \ + apt-get -y install curl git && \ + curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash && \ + export NVM_DIR="$HOME/.nvm" && \ + [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" && \ + nvm install v16.16.0 && \ + nvm use v16.16.0 + +RUN git clone https://github.com/uniquenetwork/polkadot-launch -b {{ POLKADOT_LAUNCH_BRANCH }} + +RUN export NVM_DIR="$HOME/.nvm" && \ + [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" && \ + cd /polkadot-launch && \ + npm install --global yarn && \ + yarn install + +COPY --from=builder-unique /unique_parachain/unique-chain/target/release/unique-collator /unique-chain/target/release/ +COPY --from=builder-unique /unique_parachain/launch-config-xcm-{{ NETWORK }}.json /polkadot-launch/ +COPY --from=builder-unique /unique_parachain/5validators.jsonnet /polkadot-launch/5validators.jsonnet +COPY --from=builder-polkadot /unique_parachain/polkadot/target/release/polkadot /polkadot/target/release/ +COPY --from=builder-moonbeam /unique_parachain/moonbeam/target/release/moonbeam /moonbeam/target/release/ +COPY --from=builder-cumulus /unique_parachain/cumulus/target/release/polkadot-parachain /cumulus/target/release/cumulus +COPY --from=builder-acala /unique_parachain/Acala/target/production/acala /acala/target/release/ +COPY --from=builder-chainql /chainql/target/release/chainql /chainql/target/release/ + +EXPOSE 9844 +EXPOSE 9944 +EXPOSE 9946 +EXPOSE 9947 +EXPOSE 9948 + +CMD export NVM_DIR="$HOME/.nvm" PATH="$PATH:/chainql/target/release" && \ + [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" && \ + cd /polkadot-launch && \ + yarn start launch-config-xcm-{{ NETWORK }}.json -- gitstuff