-
Notifications
You must be signed in to change notification settings - Fork 1
/
Dockerfile.template
63 lines (40 loc) · 1.78 KB
/
Dockerfile.template
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
FROM balenalib/%%BALENA_ARCH%%-node:build as builder
RUN install_packages cmake
WORKDIR /usr/src/
RUN git clone https://github.com/wasm3/wasm3
# using native doesn't produce portable executable for amrv6
RUN sed -i 's/march=native/march=armv6/' wasm3/CMakeLists.txt
WORKDIR /usr/src/wasm3/build
RUN cmake ..
RUN make -j8
COPY as_demo /usr/src/as_demo
WORKDIR /usr/src/as_demo
# install dependencies
RUN npm install
# use full path otherwise module is not found
RUN sed -i 's/bindings\/wasi/..\/..\/assemblyscript\/std\/assembly\/bindings\/wasi_unstable/g' node_modules/as-wasi/assembly/as-wasi.ts
# build optimised wasm module
RUN npm run asbuild:optimized
# standalone exec
COPY standalone /usr/src/standalone
WORKDIR /usr/src/standalone
RUN cc -o increment increment-main.c increment.c wasm-rt-impl.c
#######################################################################
##### #####
##### Final Image #####
##### #####
#######################################################################
FROM balenalib/%%BALENA_ARCH%%
# get the wasm3 runtime binary from builder
COPY --from=builder /usr/src/wasm3/build/wasm3 /usr/local/bin/
WORKDIR /usr/src/app
COPY start.sh .
COPY test.txt .
RUN chmod u+x start.sh
# Download the fib32 wasm module
RUN curl https://raw.githubusercontent.com/wasm3/wasm3/master/test/lang/fib32.wasm -o fib32.wasm
# Get the sample assembly demo from builder
COPY --from=builder /usr/src/as_demo/build/optimized.wasm as_demo.wasm
# Get standalone demo from builder
COPY --from=builder /usr/src/standalone/increment increment
CMD ["./start.sh"]