sbv2-solana/examples/functions/01_basic_oracle/sgx-function/Dockerfile.dev

56 lines
1.8 KiB
Docker

# syntax=docker/dockerfile:1.4
FROM switchboardlabs/sgx-function AS builder
ARG CARGO_NAME=switchboard-function
ENV CARGO_NAME=$CARGO_NAME
WORKDIR /home/root/solana-sdk
COPY ./rust/switchboard-common/Cargo.toml \
./rust/switchboard-common/Cargo.lock \
./rust/switchboard-common/
COPY ./rust/switchboard-solana/Cargo.toml \
./rust/switchboard-solana/Cargo.lock \
./rust/switchboard-solana/
COPY ./chains/solana/examples/functions/01_basic_oracle/Cargo.toml \
./chains/solana/examples/functions/01_basic_oracle/Cargo.lock \
./chains/solana/examples/functions/01_basic_oracle/
COPY ./chains/solana/examples/functions/01_basic_oracle/sgx-function/Cargo.toml \
./chains/solana/examples/functions/01_basic_oracle/sgx-function/Cargo.lock \
./chains/solana/examples/functions/01_basic_oracle/sgx-function/
COPY ./rust/switchboard-common/src \
./rust/switchboard-common/src/
COPY ./rust/switchboard-solana/src \
./rust/switchboard-solana/src/
COPY ./chains/solana/examples/functions/01_basic_oracle/src \
./chains/solana/examples/functions/01_basic_oracle/src/
COPY ./chains/solana/examples/functions/01_basic_oracle/sgx-function/src \
./chains/solana/examples/functions/01_basic_oracle/sgx-function/src/
WORKDIR /home/root/solana-sdk/chains/solana/examples/functions/01_basic_oracle/sgx-function
RUN --mount=type=cache,target=/usr/local/cargo/registry,id=${TARGETPLATFORM} --mount=type=cache,target=target,id=${TARGETPLATFORM} \
cargo build --release && \
cargo strip && \
mv target/release/${CARGO_NAME} /sgx/app
FROM switchboardlabs/sgx-function
# Copy the binary
WORKDIR /sgx
COPY --from=builder /sgx/app /sgx
# Get the measurement from the enclave
RUN rm -f /measurement.txt && \
/get_measurement.sh && \
cat /measurement.txt
ENTRYPOINT ["bash", "/boot.sh"]