Dockerfile.cosmwasm 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. # This is a multi-stage docker file, first and second stage builds contracts
  2. # And the third one creates node.js environment to deploy them
  3. FROM cosmwasm/workspace-optimizer:0.12.11@sha256:b6b0b1d5ed76dafd0ec0d3812a1e7a275316cf862fd6d0a918f14d71c4cb187f AS wormhole_builder
  4. WORKDIR /tmp/wormhole-repo
  5. ARG WORMHOLE_REV=2.8.9
  6. ADD https://github.com/certusone/wormhole/archive/refs/tags/v${WORMHOLE_REV}.tar.gz .
  7. RUN tar -xvf v${WORMHOLE_REV}.tar.gz
  8. RUN mv wormhole-${WORMHOLE_REV}/cosmwasm/Cargo.lock /code/
  9. RUN mv wormhole-${WORMHOLE_REV}/cosmwasm/Cargo.toml /code/
  10. RUN mv wormhole-${WORMHOLE_REV}/cosmwasm/contracts /code/contracts
  11. WORKDIR /code
  12. RUN --mount=type=cache,target=/code/target,id=cosmwasm_wormhole_target --mount=type=cache,target=/usr/local/cargo/registry optimize_workspace.sh
  13. FROM cosmwasm/workspace-optimizer:0.12.11@sha256:b6b0b1d5ed76dafd0ec0d3812a1e7a275316cf862fd6d0a918f14d71c4cb187f AS pyth_builder
  14. COPY target_chains/cosmwasm/Cargo.lock /code/
  15. COPY target_chains/cosmwasm/Cargo.toml /code/
  16. COPY target_chains/cosmwasm/contracts /code/contracts
  17. COPY target_chains/cosmwasm/sdk/rust /code/sdk/rust
  18. COPY wormhole_attester/sdk/rust /wormhole_attester/sdk/rust
  19. RUN --mount=type=cache,target=/code/target,id=cosmwasm_pyth_target --mount=type=cache,target=/usr/local/cargo/registry optimize_workspace.sh
  20. # Contract deployment stage
  21. FROM node:16-buster-slim@sha256:93c9fc3550f5f7d159f282027228e90e3a7f8bf38544758024f005e82607f546
  22. RUN apt update && apt install netcat curl jq -y
  23. WORKDIR /app/tools
  24. COPY --from=wormhole_builder /code/artifacts/wormhole.wasm /app/artifacts/wormhole.wasm
  25. COPY --from=pyth_builder /code/artifacts/pyth_cosmwasm.wasm /app/artifacts/pyth_cosmwasm.wasm
  26. COPY target_chains/cosmwasm/tools/package.json target_chains/cosmwasm/tools/package-lock.json /app/tools/
  27. RUN --mount=type=cache,uid=1000,gid=1000,target=/home/node/.npm \
  28. npm ci
  29. COPY target_chains/cosmwasm/tools /app/tools