git.delta.rocks / unique-network / refs/commits / fc2ce00644a6

difftreelog

ci specify endpoints for xcm containers

Yaroslav Bolyukin2023-08-23parent: #369a51d.patch.diff
in: master

6 files changed

modified.docker/Dockerfile-acala.j2diffbeforeafterboth
--- a/.docker/Dockerfile-acala.j2
+++ b/.docker/Dockerfile-acala.j2
@@ -14,12 +14,11 @@
 
 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 }} && \
+RUN rustup toolchain install {{ RUST_TOOLCHAIN }} && \
+    rustup target add wasm32-unknown-unknown --toolchain {{ 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
@@ -29,13 +28,19 @@
 
 WORKDIR /unique_parachain
 
-RUN git clone -b {{ ACALA_BUILD_BRANCH }} --depth 1 https://github.com/AcalaNetwork/Acala.git && \
+RUN git clone -b {{ ACALA_BUILD_BRANCH }} --depth 1 https://github.com/AcalaNetwork/Acala.git
+
+RUN --mount=type=cache,target=/cargo-home/registry \
+    --mount=type=cache,target=/cargo-home/git \
+    --mount=type=cache,target=/unique_parachain/Acala/target \
     cd Acala && \
     make init && \
-    make build-release
+    make build-release && \
+    mv ./target/production/acala /unique_parachain/Acala/
 
 # ===== BIN ======
 
 FROM ubuntu:22.04 as builder-acala
 
-COPY --from=builder-acala-bin /unique_parachain/Acala/target/production/acala /unique_parachain/acala/target/production/acala
+COPY --from=builder-acala-bin /unique_parachain/Acala/acala /bin/acala
+ENTRYPOINT ["/bin/acala"]
modified.docker/Dockerfile-astar.j2diffbeforeafterboth
--- a/.docker/Dockerfile-astar.j2
+++ b/.docker/Dockerfile-astar.j2
@@ -14,12 +14,11 @@
 
 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 }} && \
+RUN rustup toolchain install {{ RUST_TOOLCHAIN }} && \
+    rustup target add wasm32-unknown-unknown --toolchain {{ 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
@@ -29,12 +28,18 @@
 
 WORKDIR /unique_parachain
 
-RUN git clone --recurse-submodules -b {{ ASTAR_BUILD_BRANCH }} --depth 1 https://github.com/AstarNetwork/Astar.git && \
+RUN git clone --recurse-submodules -b {{ ASTAR_BUILD_BRANCH }} --depth 1 https://github.com/AstarNetwork/Astar.git
+
+RUN --mount=type=cache,target=/cargo-home/registry \
+    --mount=type=cache,target=/cargo-home/git \
+    --mount=type=cache,target=/unique_parachain/Astar/target \
     cd Astar && \
-    cargo build --release
+    CARGO_INCREMENTAL=0 cargo build --release --locked && \
+    mv ./target/release/astar-collator /unique_parachain/Astar/
 
 # ===== BIN ======
 
 FROM ubuntu:22.04 as builder-astar
 
-COPY --from=builder-astar-bin /unique_parachain/Astar/target/release/astar-collator /unique_parachain/astar/target/release/astar
+COPY --from=builder-astar-bin /unique_parachain/Astar/astar-collator /bin/astar-collator
+ENTRYPOINT ["/bin/astar-collator"]
modified.docker/Dockerfile-cumulus.j2diffbeforeafterboth
1414
15RUN curl https://sh.rustup.rs -sSf | sh -s -- -y --default-toolchain none15RUN curl https://sh.rustup.rs -sSf | sh -s -- -y --default-toolchain none
1616
17RUN rustup toolchain uninstall $(rustup toolchain list) && \17RUN rustup toolchain install {{ RUST_TOOLCHAIN }} && \
18 rustup toolchain install {{ RUST_TOOLCHAIN }} && \18 rustup target add wasm32-unknown-unknown --toolchain {{ RUST_TOOLCHAIN }} && \
19 rustup default {{ RUST_TOOLCHAIN }} && \19 rustup default {{ RUST_TOOLCHAIN }} && \
20 rustup target list --installed && \20 rustup target list --installed && \
21 rustup show21 rustup show
22RUN rustup target add wasm32-unknown-unknown --toolchain {{ RUST_TOOLCHAIN }}
2322
24RUN mkdir /unique_parachain23RUN mkdir /unique_parachain
25WORKDIR /unique_parachain24WORKDIR /unique_parachain
2928
30WORKDIR /unique_parachain29WORKDIR /unique_parachain
3130
32RUN git clone -b {{ CUMULUS_BUILD_BRANCH }} --depth 1 https://github.com/paritytech/cumulus.git && \31RUN git clone -b {{ CUMULUS_BUILD_BRANCH }} --depth 1 https://github.com/paritytech/cumulus.git
32
33RUN --mount=type=cache,target=/cargo-home/registry \
34 --mount=type=cache,target=/cargo-home/git \
35 --mount=type=cache,target=/unique_parachain/cumulus/target \
33 cd cumulus && \36 cd cumulus && \
34 cargo build --release37 CARGO_INCREMENTAL=0 cargo build --release --locked && \
38 mv ./target/release/polkadot-parachain /unique_parachain/cumulus/cumulus
3539
36# ===== BIN ======40# ===== BIN ======
3741
38FROM ubuntu:22.04 as builder-cumulus42FROM ubuntu:22.04 as builder-cumulus
3943
40COPY --from=builder-cumulus-bin /unique_parachain/cumulus/target/release/polkadot-parachain /unique_parachain/cumulus/target/release/polkadot-parachain44COPY --from=builder-cumulus-bin /unique_parachain/cumulus/cumulus /bin/cumulus
45ENTRYPOINT ["/bin/cumulus"]
4146
modified.docker/Dockerfile-moonbeam.j2diffbeforeafterboth
--- a/.docker/Dockerfile-moonbeam.j2
+++ b/.docker/Dockerfile-moonbeam.j2
@@ -14,12 +14,11 @@
 
 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 }} && \
+RUN rustup toolchain install {{ RUST_TOOLCHAIN }} && \
+    rustup target add wasm32-unknown-unknown --toolchain {{ 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
@@ -30,12 +29,18 @@
 
 WORKDIR /unique_parachain
 
-RUN git clone -b {{ MOONBEAM_BUILD_BRANCH }} --depth 1 https://github.com/PureStake/moonbeam.git && \
+RUN git clone -b {{ MOONBEAM_BUILD_BRANCH }} --depth 1 https://github.com/PureStake/moonbeam.git
+
+RUN --mount=type=cache,target=/cargo-home/registry \
+    --mount=type=cache,target=/cargo-home/git \
+    --mount=type=cache,target=/unique_parachain/moonbeam/target \
     cd moonbeam && \
-    cargo build --release
+    CARGO_INCREMENTAL=0 cargo build --release --locked && \
+    mv ./target/release/moonbeam /unique_parachain/moonbeam/
 
 # ===== BIN ======
 
 FROM ubuntu:22.04 as builder-moonbeam
 
-COPY --from=builder-moonbeam-bin /unique_parachain/moonbeam/target/release/moonbeam /unique_parachain/moonbeam/target/release/moonbeam
+COPY --from=builder-moonbeam-bin /unique_parachain/moonbeam/moonbeam /bin/moonbeam
+ENTRYPOINT ["/bin/moonbeam"]
modified.docker/Dockerfile-polkadot.j2diffbeforeafterboth
--- a/.docker/Dockerfile-polkadot.j2
+++ b/.docker/Dockerfile-polkadot.j2
@@ -14,12 +14,11 @@
 
 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 }} && \
+RUN rustup toolchain install {{ RUST_TOOLCHAIN }} && \
+    rustup target add wasm32-unknown-unknown --toolchain {{ 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
@@ -29,12 +28,18 @@
 
 WORKDIR /unique_parachain
 
-RUN git clone -b {{ POLKADOT_BUILD_BRANCH }} --depth 1 https://github.com/paritytech/polkadot.git && \
+RUN git clone -b {{ POLKADOT_BUILD_BRANCH }} --depth 1 https://github.com/paritytech/polkadot.git
+
+RUN --mount=type=cache,target=/cargo-home/registry \
+    --mount=type=cache,target=/cargo-home/git \
+    --mount=type=cache,target=/unique_parachain/polkadot/target \
     cd polkadot && \
-    cargo build --release
+    CARGO_INCREMENTAL=0 cargo build --release --locked && \
+    mv ./target/release/polkadot /unique_parachain/polkadot/
 
 # ===== BIN ======
 
 FROM ubuntu:22.04 as builder-polkadot
 
-COPY --from=builder-polkadot-bin /unique_parachain/polkadot/target/release/polkadot /unique_parachain/polkadot/target/release/polkadot
+COPY --from=builder-polkadot-bin /unique_parachain/polkadot/polkadot /bin/polkadot
+ENTRYPOINT ["/bin/polkadot"]
added.docker/Dockerfile-uniquediffbeforeafterboth
--- /dev/null
+++ b/.docker/Dockerfile-unique
@@ -0,0 +1,58 @@
+# ===== Rust builder =====
+FROM ubuntu:22.04 as rust-builder
+LABEL maintainer="Unique.Network"
+
+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 protobuf-compiler && \
+    apt-get clean && \
+    rm -r /var/lib/apt/lists/*
+
+RUN curl https://sh.rustup.rs -sSf | sh -s -- -y --default-toolchain none
+
+ARG RUST_TOOLCHAIN
+RUN echo "Using Rust '$RUST_TOOLCHAIN'" && \
+    rustup toolchain install $RUST_TOOLCHAIN && \
+    rustup target add wasm32-unknown-unknown --toolchain ${RUST_TOOLCHAIN} && \
+    rustup default $RUST_TOOLCHAIN && \
+    rustup target list --installed && \
+    rustup show
+
+RUN mkdir /unique_parachain
+WORKDIR /unique_parachain
+
+# ===== BUILD UNIQUE =====
+FROM rust-builder as builder-polkadot-bin
+
+WORKDIR /unique_parachain
+
+COPY . unique-chain/
+
+ARG RUNTIME_FEATURES
+# registry for Updating registry. It is safe to cache it, because it only contains references to the dependency files,
+#   and the caches for the files themselves are set in Cargo.lock, which won't be updated because of --locked flag
+# git for Updating git repository. It is safe to cache it, because git dependencies are cached by revision,
+#   revision is locked in Cargo.lock, and it is forbidden to update the Cargo.lock, because of --locked flag
+#   passed to cargo build
+# target for built dependencies. Technically, it may be unsafe to cache it, but there was no bugs in the caching logic
+#   of it to this day (Ignoring incremental compilation, which is explicitly disabled by CARGO_INCREMENTAL=0). Only the
+#   fully built crates will be cached depending on the crate source, version and feature set, which are locked by
+#   Cargo.lock, which can't be updated because of the --locked flag.
+RUN --mount=type=cache,target=/cargo-home/registry \
+    --mount=type=cache,target=/cargo-home/git \
+    --mount=type=cache,target=/unique_parachain/unique-chain/target \
+    cd unique-chain && \
+    echo "Using runtime features '$RUNTIME_FEATURES'" && \
+    CARGO_INCREMENTAL=0 cargo build --release --features="$RUNTIME_FEATURES" --locked && \
+    mv ./target/release/unique-collator /unique_parachain/unique-chain/
+
+# ===== BIN ======
+
+FROM ubuntu:22.04 as builder-polkadot
+
+COPY --from=builder-polkadot-bin /unique_parachain/unique-chain/unique-collator /bin/unique-collator
+ENTRYPOINT ["/bin/unique-collator"]