-
Notifications
You must be signed in to change notification settings - Fork 27
/
Copy pathDockerfile
42 lines (34 loc) · 1.37 KB
/
Dockerfile
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
FROM emscripten/emsdk:3.0.0
LABEL maintainer "yoshihitoh <[email protected]>"
ENV EMCC_SDK_VERSION 1.38.41
ENV ZSTD_DIR /emscripten/zstd
# install prerequisites
RUN apt-get update
RUN apt-get install -y \
wget git-core \
build-essential cmake python nodejs openjdk-8-jre-headless libncurses5
RUN emsdk update && \
emsdk install sdk-${EMCC_SDK_VERSION}-64bit && \
emsdk activate sdk-${EMCC_SDK_VERSION}-64bit && \
echo "source /emsdk/emsdk_env.sh" > ~/.bash_profile
# warmup emsdk
WORKDIR /emscripten
ADD ./docker-files/prebuild-libc.cc /emscripten
RUN ls -lah /emscripten && bash --login -c \
"em++ --bind -std=c++1z -o prebuild-libc.js prebuild-libc.cc -s DEMANGLE_SUPPORT=1 && node prebuild-libc.js && rm prebuild-libc.js" && \
rm prebuild-libc.*
# build zstd library
COPY ./cpp/zstd ${ZSTD_DIR}
WORKDIR ${ZSTD_DIR}
RUN bash --login -c "make clean && emmake make -j$(nproc)"
RUN mkdir -p /emscripten/lib && cp lib/libzstd.so /emscripten/lib/libzstd.bc
# install premake5
WORKDIR /emscripten
RUN wget https://github.com/premake/premake-core/releases/download/v5.0.0-alpha12/premake-5.0.0-alpha12-linux.tar.gz && \
tar xvf premake-5.0.0-alpha12-linux.tar.gz && \
rm premake-5.0.0-alpha12-linux.tar.gz && \
mv premake5 /usr/local/bin
VOLUME /emscripten/build
VOLUME /emscripten/src
WORKDIR /emscripten
CMD ["/bin/bash"]