Dockerfile 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. #syntax=docker/dockerfile:1.2@sha256:e2a8561e419ab1ba6b2fe6cbdf49fd92b95912df1cf7d313c3e2230a333fdbcc
  2. FROM ghcr.io/wormhole-foundation/solana:1.10.31@sha256:d31e8db926a1d3fbaa9d9211d9979023692614b7b64912651aba0383e8c01bad AS solana
  3. # Add bridge contract sources
  4. WORKDIR /usr/src/bridge
  5. COPY bridge bridge
  6. COPY modules modules
  7. COPY migration migration
  8. COPY Cargo.toml Cargo.toml
  9. COPY Cargo.lock Cargo.lock
  10. COPY solitaire solitaire
  11. COPY external external
  12. ENV RUST_LOG="solana_runtime::system_instruction_processor=trace,solana_runtime::message_processor=trace,solana_bpf_loader=debug,solana_rbpf=debug"
  13. ENV RUST_BACKTRACE=1
  14. FROM solana AS builder
  15. RUN mkdir -p /opt/solana/deps
  16. ARG EMITTER_ADDRESS="11111111111111111111111111111115"
  17. ARG BRIDGE_ADDRESS
  18. RUN [ -n "${BRIDGE_ADDRESS}" ]
  19. # Build Wormhole Solana programs
  20. RUN --mount=type=cache,target=target,id=build \
  21. --mount=type=cache,target=/usr/local/cargo/registry,id=cargo_registry \
  22. cargo build-bpf --manifest-path "bridge/program/Cargo.toml" -- --locked && \
  23. cargo build-bpf --manifest-path "bridge/cpi_poster/Cargo.toml" -- --locked && \
  24. cargo build-bpf --manifest-path "modules/token_bridge/program/Cargo.toml" -- --locked && \
  25. cargo build-bpf --manifest-path "modules/nft_bridge/program/Cargo.toml" -- --locked && \
  26. cargo build-bpf --manifest-path "migration/Cargo.toml" -- --locked && \
  27. cp target/deploy/bridge.so /opt/solana/deps/bridge.so && \
  28. cp target/deploy/cpi_poster.so /opt/solana/deps/cpi_poster.so && \
  29. cp target/deploy/wormhole_migration.so /opt/solana/deps/wormhole_migration.so && \
  30. cp target/deploy/token_bridge.so /opt/solana/deps/token_bridge.so && \
  31. cp target/deploy/nft_bridge.so /opt/solana/deps/nft_bridge.so && \
  32. cp external/mpl_token_metadata.so /opt/solana/deps/mpl_token_metadata.so
  33. FROM scratch AS export-stage
  34. COPY --from=builder /opt/solana/deps /