diff --git a/Dockerfile b/Dockerfile index 26b346bbb..ab8479b59 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,16 @@ ARG RUSTUP_TOOLCHAIN=stable + +FROM node:18.15.0-slim as topos-contracts + +WORKDIR /usr/src/app + +COPY ./contracts/package*.json . +RUN npm install + +COPY ./contracts . + +RUN npm run build + FROM --platform=${BUILDPLATFORM:-linux/amd64} ghcr.io/topos-protocol/rust_builder:bullseye-${RUSTUP_TOOLCHAIN} AS base ARG FEATURES @@ -8,11 +20,15 @@ ARG SCCACHE_BUCKET ARG SCCACHE_REGION ARG RUSTC_WRAPPER ARG PROTOC_VERSION=22.2 +ARG SKIP_CONTRACT_BUILD=true WORKDIR /usr/src/app FROM --platform=${BUILDPLATFORM:-linux/amd64} base AS build COPY . . + +COPY --from=topos-contracts /usr/src/app/artifacts ./contracts/artifacts + RUN --mount=type=secret,id=aws,target=/root/.aws/credentials \ --mount=type=cache,id=sccache,target=/root/.cache/sccache \ cargo build --release --no-default-features --features=${FEATURES} \