Dockerfile 984 B

1234567891011121314151617181920212223242526272829
  1. # syntax=docker/dockerfile:1
  2. FROM --platform=$BUILDPLATFORM rust:1.64 AS buildbase
  3. WORKDIR /src
  4. RUN <<EOT bash
  5. set -ex
  6. apt-get update
  7. apt-get install -y \
  8. git \
  9. clang
  10. rustup target add wasm32-wasi
  11. EOT
  12. # This line installs WasmEdge including the AOT compiler
  13. RUN curl -sSf https://raw.githubusercontent.com/WasmEdge/WasmEdge/master/utils/install.sh | bash
  14. FROM buildbase AS build
  15. COPY Cargo.toml .
  16. COPY src ./src
  17. # Build the Wasm binary
  18. RUN --mount=type=cache,target=/usr/local/cargo/git/db \
  19. --mount=type=cache,target=/usr/local/cargo/registry/cache \
  20. --mount=type=cache,target=/usr/local/cargo/registry/index \
  21. cargo build --target wasm32-wasi --release
  22. # This line builds the AOT Wasm binary
  23. RUN /root/.wasmedge/bin/wasmedgec target/wasm32-wasi/release/order_demo_service.wasm order_demo_service.wasm
  24. FROM scratch
  25. ENTRYPOINT [ "order_demo_service.wasm" ]
  26. COPY --link --from=build /src/order_demo_service.wasm /order_demo_service.wasm