FROM rust:1.36-slim AS rust
WORKDIR /rustpython
USER root
ENV USER=root
RUN apt-get update && apt-get install curl libssl-dev pkg-config -y && \
curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh
COPY Cargo.toml Cargo.lock ./
COPY src src
COPY vm vm
COPY derive derive
COPY parser parser
COPY bytecode bytecode
COPY compiler compiler
COPY wasm/lib wasm/lib
COPY Lib Lib
RUN cd wasm/lib/ && wasm-pack build --release
FROM node:alpine AS node
WORKDIR /rustpython-demo
COPY --from=rust /rustpython/wasm/lib/pkg rustpython_wasm
COPY wasm/demo .
RUN npm install && npm run dist -- --env.noWasmPack --env.rustpythonPkg=rustpython_wasm
FROM node:slim
WORKDIR /rustpython-demo
RUN npm i -g serve
COPY --from=node /rustpython-demo/dist .
CMD [ "serve", "-l", "80", "/rustpython-demo" ]
EXPOSE 80