-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathwork_only_build.dockerfile
30 lines (24 loc) · 1.3 KB
/
work_only_build.dockerfile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
FROM risczero/risc0-guest-builder:r0.1.81.0 AS build
WORKDIR /src
# Copy the entire project structure
COPY work-only work-only
COPY core core
# Set compile-time environment variables
ENV CARGO_MANIFEST_PATH="work-only/guest/Cargo.toml"
ENV RUSTFLAGS="-C passes=loweratomic -C link-arg=-Ttext=0x00200800 -C link-arg=--fatal-warnings"
ENV CARGO_TARGET_DIR="work-only/guest/target"
ENV CC_riscv32im_risc0_zkvm_elf="/root/.local/share/cargo-risczero/cpp/bin/riscv32-unknown-elf-gcc"
ENV CFLAGS_riscv32im_risc0_zkvm_elf="-march=rv32im -nostdlib"
# Set network environment variable
ARG BITCOIN_NETWORK=regtest
ENV BITCOIN_NETWORK=${BITCOIN_NETWORK}
# Only run the build once with the environment variable set
RUN echo "Building for network: ${BITCOIN_NETWORK}" && \
cd work-only && \
cd .. && \
cargo +risc0 fetch --target riscv32im-risc0-zkvm-elf --manifest-path ${CARGO_MANIFEST_PATH} && \
cargo +risc0 build --release --target riscv32im-risc0-zkvm-elf --manifest-path ${CARGO_MANIFEST_PATH}
FROM scratch AS export
ARG BITCOIN_NETWORK
COPY --from=build /src/work-only/guest/target/riscv32im-risc0-zkvm-elf/release ../target/riscv-guest/riscv32im-risc0-zkvm-elf/docker/work-only-guest
COPY --from=build /src/work-only/guest/target/riscv32im-risc0-zkvm-elf/release/work-only-guest elfs/${BITCOIN_NETWORK}-work-only-guest