|
1 | | -FROM ubuntu:20.04 |
| 1 | +FROM ubuntu:24.04 |
| 2 | + |
| 3 | +# WASI SDK version to use - update this to upgrade |
| 4 | +ARG WASI_SDK_VERSION=29 |
2 | 5 |
|
3 | 6 | RUN apt-get update |
4 | 7 | RUN apt-get -y install git curl wget xxd |
5 | 8 | ENV PATH=/root/.cargo/bin:$PATH |
6 | 9 |
|
7 | 10 | # Build SpiderMonkey itself. |
8 | 11 | WORKDIR /usr/src |
9 | | -RUN git clone -b rev_b02d76023a15a3fa8c8f54bff5dac91099669003 --single-branch https://github.com/tschneidereit/spidermonkey-wasi-embedding |
| 12 | +RUN git clone -b rev_b02d76023a15a3fa8c8f54bff5dac91099669003 \ |
| 13 | + --single-branch https://github.com/bytecodealliance/spidermonkey-wasi-embedding |
10 | 14 | WORKDIR /usr/src/spidermonkey-wasi-embedding |
11 | 15 | ENV DEBIAN_FRONTEND=noninteractive |
12 | 16 | RUN ./download-engine.sh |
13 | 17 |
|
14 | 18 | WORKDIR /opt |
15 | | -RUN wget https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-25/wasi-sdk-25.0-x86_64-linux.tar.gz |
16 | | -RUN tar zxvf wasi-sdk-25.0-x86_64-linux.tar.gz |
17 | | -RUN ln -s wasi-sdk-25.0-x86_64-linux wasi-sdk |
| 19 | +# Download the appropriate wasi-sdk for the target architecture |
| 20 | +RUN ARCH=$(uname -m) && \ |
| 21 | + if [ "$ARCH" = "x86_64" ]; then \ |
| 22 | + WASI_ARCH="x86_64"; \ |
| 23 | + elif [ "$ARCH" = "aarch64" ]; then \ |
| 24 | + WASI_ARCH="arm64"; \ |
| 25 | + else \ |
| 26 | + echo "Unsupported architecture: $ARCH" && exit 1; \ |
| 27 | + fi && \ |
| 28 | + wget https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-${WASI_SDK_VERSION}/wasi-sdk-${WASI_SDK_VERSION}.0-${WASI_ARCH}-linux.tar.gz && \ |
| 29 | + tar zxvf wasi-sdk-${WASI_SDK_VERSION}.0-${WASI_ARCH}-linux.tar.gz && \ |
| 30 | + ln -s wasi-sdk-${WASI_SDK_VERSION}.0-${WASI_ARCH}-linux wasi-sdk |
18 | 31 |
|
19 | 32 | WORKDIR /usr/src |
20 | 33 |
|
21 | | -RUN mkdir benchmark && cd benchmark/ |
22 | | - |
| 34 | +# Copy runtime, sightglass header, JS files, and build script |
23 | 35 | COPY runtime.cpp . |
24 | 36 | COPY sightglass.h . |
| 37 | +COPY js js |
25 | 38 | COPY build.sh . |
26 | | - |
27 | | -RUN mkdir js |
28 | | -COPY js/marked.min.js js/marked.min.js |
29 | | -COPY js/main.js js/main.js |
| 39 | +RUN chmod +x build.sh |
30 | 40 |
|
31 | 41 | RUN ./build.sh |
| 42 | +# We output the Wasm files to the `/benchmark` directory, where the client expects it. |
0 commit comments