Add a crate to test the runtime can be reproducibly built

This commit is contained in:
Luke Parker
2023-07-27 14:19:03 -04:00
parent 09a95c9bd2
commit a8c7bb96c8
13 changed files with 242 additions and 8 deletions

View File

@@ -52,15 +52,10 @@ and signatures.
* Expose necessary ports.
* Map necessary volumes.
The best way is to build using `docker compose`. If you'd prefer to build using
`docker` directly, each image can be built independently.
**Example:** `docker build ./coins/bitcoin`
### Entrypoint
The Serai node and external networks' nodes are each started from an entrypoint
script inside the /scripts folder.
script inside the `/scripts `folder.
To update the scripts on the image you must rebuild the updated images using the
`--build` flag after `up` in `docker compose`.

View File

@@ -76,7 +76,19 @@ services:
- "./processor/scripts:/scripts"
entrypoint: /scripts/entry-dev.sh
# Serai services
# Serai runtime
runtime:
profiles:
- runtime
build:
context: ../
dockerfile: ./orchestration/runtime/Dockerfile
entrypoint: |
sh -c "cd /serai/substrate/runtime && cargo clean && cargo build --release && \
sha256sum /serai/target/release/wbuild/serai-runtime/serai_runtime.wasm"
# Serai nodes
_serai:
&serai_defaults

View File

@@ -0,0 +1,28 @@
FROM rust:1.71.0-slim-bookworm as builder
# Add files for build
ADD common /serai/common
ADD crypto /serai/crypto
ADD coins /serai/coins
ADD message-queue /serai/message-queue
ADD processor /serai/processor
ADD coordinator /serai/coordinator
ADD substrate /serai/substrate
ADD tests /serai/tests
ADD Cargo.toml /serai
ADD Cargo.lock /serai
ADD AGPL-3.0 /serai
WORKDIR /serai
# Move to a Debian package snapshot
RUN rm -rf /etc/apt/sources.list.d/debian.sources && \
rm -rf /var/lib/apt/lists/* && \
echo "deb [arch=amd64] http://snapshot.debian.org/archive/debian/20230703T000000Z bookworm main" > /etc/apt/sources.list && \
apt update
# Install dependencies
RUN apt install clang -y
# Add the wasm toolchain
RUN rustup target add wasm32-unknown-unknown