mirror of
https://github.com/logos-blockchain/lez-programs.git
synced 2026-07-03 05:29:50 +00:00
45 lines
1.8 KiB
Docker
45 lines
1.8 KiB
Docker
# syntax=docker/dockerfile:1.7
|
|
|
|
ARG RISC0_DOCKER_CONTAINER_TAG=r0.1.88.0
|
|
FROM risczero/risc0-guest-builder:${RISC0_DOCKER_CONTAINER_TAG} AS build
|
|
ARG RISC0_BUILD_CACHE_ID=lez-programs-risc0-guests
|
|
|
|
WORKDIR /src
|
|
COPY . .
|
|
|
|
ENV CARGO_TARGET_DIR=/src/target/risc0-guests
|
|
ENV RISC0_FEATURE_bigint2=""
|
|
ENV CC_riscv32im_risc0_zkvm_elf=/root/.risc0/cpp/bin/riscv32-unknown-elf-gcc
|
|
ENV CFLAGS_riscv32im_risc0_zkvm_elf="-march=rv32im -nostdlib"
|
|
|
|
RUN --mount=type=cache,id=${RISC0_BUILD_CACHE_ID}-cargo-git,sharing=locked,target=/root/.cargo/git \
|
|
--mount=type=cache,id=${RISC0_BUILD_CACHE_ID}-cargo-registry,sharing=locked,target=/root/.cargo/registry \
|
|
--mount=type=cache,id=${RISC0_BUILD_CACHE_ID}-target,sharing=locked,target=/src/target/risc0-guests <<'EOF'
|
|
set -eu
|
|
|
|
target_triple="riscv32im-risc0-zkvm-elf"
|
|
programs="amm ata stablecoin token twap_oracle"
|
|
unit_separator="$(printf '\037')"
|
|
guest_rustflags="-C${unit_separator}passes=lower-atomic${unit_separator}-C${unit_separator}link-arg=-Ttext=0x00200800${unit_separator}-C${unit_separator}link-arg=--fatal-warnings${unit_separator}-C${unit_separator}panic=abort${unit_separator}--cfg${unit_separator}getrandom_backend=\"custom\""
|
|
export CARGO_ENCODED_RUSTFLAGS="${guest_rustflags}"
|
|
|
|
for program in ${programs}; do
|
|
manifest="programs/${program}/methods/guest/Cargo.toml"
|
|
echo "==> Building ${program}"
|
|
cargo +risc0 build --release --locked --target "${target_triple}" --manifest-path "${manifest}"
|
|
done
|
|
|
|
mkdir -p /guest-output
|
|
unset CARGO_ENCODED_RUSTFLAGS
|
|
cargo +risc0 build --locked -p risc0-packager
|
|
packager="${CARGO_TARGET_DIR}/debug/risc0-packager"
|
|
|
|
for program in ${programs}; do
|
|
elf="${CARGO_TARGET_DIR}/${target_triple}/release/${program}"
|
|
"${packager}" "${elf}" "/guest-output/${program}.bin"
|
|
done
|
|
EOF
|
|
|
|
FROM scratch AS export
|
|
COPY --from=build /guest-output /
|