Dockerfile.wasm 3.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. # syntax=docker.io/docker/dockerfile:experimental@sha256:de85b2f3a3e8a2f7fe48e8e84a65f6fdd5cd5183afa6412fff9caa6871649c44
  2. FROM docker.io/library/rust:1.49@sha256:a50165ea96983c21832578afb1c8c028674c965bc1ed43b607871b1f362e06a5 AS build
  3. RUN apt-get update && apt-get install -y libssl-dev libudev-dev pkg-config zlib1g-dev llvm clang
  4. RUN rustup component add rustfmt
  5. RUN rustup default nightly-2021-08-01
  6. WORKDIR /usr/src/bridge
  7. RUN cargo install wasm-pack
  8. ENV RUST_LOG="solana_runtime::system_instruction_processor=trace,solana_runtime::message_processor=trace,solana_bpf_loader=debug,solana_rbpf=debug"
  9. ENV EMITTER_ADDRESS="11111111111111111111111111111115"
  10. ENV BRIDGE_ADDRESS="Bridge1p5gheXUvJ6jGWGeCsgPKgnE3YgdGKRVCMY9o"
  11. COPY bridge bridge
  12. COPY modules modules
  13. COPY solitaire solitaire
  14. COPY migration migration
  15. # Compile Wormhole
  16. RUN --mount=type=cache,target=/root/.cache \
  17. --mount=type=cache,target=bridge/target \
  18. cd bridge/program && /usr/local/cargo/bin/wasm-pack build --target bundler -d bundler -- --features wasm
  19. RUN --mount=type=cache,target=/root/.cache \
  20. --mount=type=cache,target=bridge/target \
  21. cd bridge/program && /usr/local/cargo/bin/wasm-pack build --target nodejs -d nodejs -- --features wasm
  22. # Compile Token Bridge
  23. RUN --mount=type=cache,target=/root/.cache \
  24. --mount=type=cache,target=modules/token_bridge/target \
  25. cd modules/token_bridge/program && /usr/local/cargo/bin/wasm-pack build --target bundler -d bundler -- --features wasm
  26. RUN --mount=type=cache,target=/root/.cache \
  27. --mount=type=cache,target=modules/token_bridge/target \
  28. cd modules/token_bridge/program && /usr/local/cargo/bin/wasm-pack build --target nodejs -d nodejs -- --features wasm
  29. # Compile Migration
  30. RUN --mount=type=cache,target=/root/.cache \
  31. --mount=type=cache,target=migration/target \
  32. cd migration && /usr/local/cargo/bin/wasm-pack build --target bundler -d bundler -- --features wasm
  33. # Compile NFT Bridge
  34. RUN --mount=type=cache,target=/root/.cache \
  35. --mount=type=cache,target=modules/nft_bridge/target \
  36. cd modules/nft_bridge/program && /usr/local/cargo/bin/wasm-pack build --target bundler -d bundler -- --features wasm
  37. RUN --mount=type=cache,target=/root/.cache \
  38. --mount=type=cache,target=modules/nft_bridge/target \
  39. cd modules/nft_bridge/program && /usr/local/cargo/bin/wasm-pack build --target nodejs -d nodejs -- --features wasm
  40. FROM scratch AS export
  41. COPY --from=build /usr/src/bridge/bridge/program/bundler sdk/js/src/solana/core
  42. COPY --from=build /usr/src/bridge/modules/token_bridge/program/bundler sdk/js/src/solana/token
  43. COPY --from=build /usr/src/bridge/migration/bundler sdk/js/src/solana/migration
  44. COPY --from=build /usr/src/bridge/modules/nft_bridge/program/bundler sdk/js/src/solana/nft
  45. COPY --from=build /usr/src/bridge/bridge/program/nodejs clients/solana/pkg
  46. COPY --from=build /usr/src/bridge/bridge/program/nodejs clients/token_bridge/pkg/core
  47. COPY --from=build /usr/src/bridge/bridge/program/nodejs clients/nft_bridge/pkg/core
  48. COPY --from=build /usr/src/bridge/modules/token_bridge/program/nodejs clients/token_bridge/pkg/token
  49. COPY --from=build /usr/src/bridge/modules/nft_bridge/program/nodejs clients/nft_bridge/pkg/nft