Dockerfile 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. FROM ubuntu:18.04 as builder
  2. #
  3. # install clang and llvm
  4. COPY llvm.sh /tmp
  5. RUN apt update \
  6. && apt install -y lsb-release wget software-properties-common build-essential \
  7. && cd /tmp \
  8. && chmod a+x llvm.sh \
  9. && ./llvm.sh 11
  10. ARG WASI_SDK_VER=11.0
  11. ARG WABT_VER=1.0.19
  12. ARG CMAKE_VER=3.16.2
  13. ARG BINARYEN_VER=version_97
  14. ARG BAZEL_VER=3.7.0
  15. #
  16. # install wasi-sdk
  17. ARG WASI_SDK_FILE="wasi-sdk-${WASI_SDK_VER}-linux.tar.gz"
  18. COPY ${WASI_SDK_FILE} /opt
  19. RUN cd /opt \
  20. && tar zxf ${WASI_SDK_FILE} \
  21. && rm ${WASI_SDK_FILE} \
  22. && ln -sf /opt/wasi-sdk-${WASI_SDK_VER} /opt/wasi-sdk \
  23. && ln -sf /opt/wasi-sdk/lib/clang/10.0.0/lib/wasi/ /usr/lib/llvm-11/lib/clang/11.0.0/lib/
  24. #
  25. # install wabt
  26. ARG WABT_FILE="wabt-${WABT_VER}-ubuntu.tar.gz"
  27. COPY ${WABT_FILE} /opt
  28. RUN cd /opt \
  29. && tar zxf ${WABT_FILE} \
  30. && rm ${WABT_FILE} \
  31. && ln -sf /opt/wabt-${WABT_VER} /opt/wabt
  32. #
  33. # install cmake
  34. ARG CMAKE_FILE="cmake-${CMAKE_VER}-Linux-x86_64.sh"
  35. COPY ${CMAKE_FILE} /tmp
  36. RUN cd /tmp \
  37. && chmod a+x ${CMAKE_FILE} \
  38. && mkdir /opt/cmake \
  39. && ./${CMAKE_FILE} --prefix=/opt/cmake --skip-license \
  40. && ln -sf /opt/cmake/bin/cmake /usr/local/bin/cmake
  41. #
  42. # install tools
  43. RUN apt install -y git tree
  44. #
  45. # install emsdk
  46. RUN cd /opt \
  47. && git clone https://github.com/emscripten-core/emsdk.git \
  48. && cd emsdk \
  49. && git pull \
  50. && ./emsdk install latest \
  51. && ./emsdk activate latest \
  52. && echo "source /opt/emsdk/emsdk_env.sh" >> /root/.bashrc
  53. #
  54. # install binaryen
  55. ARG BINARYEN_FILE="binaryen-${BINARYEN_VER}-x86_64-linux.tar.gz"
  56. COPY ${BINARYEN_FILE} /opt
  57. RUN cd /opt \
  58. && tar zxf ${BINARYEN_FILE} \
  59. && rm ${BINARYEN_FILE} \
  60. && ln -sf /opt/binaryen-${BINARYEN_VER} /opt/binaryen
  61. RUN apt install -y unzip zip
  62. #
  63. # install bazel
  64. ARG BAZEL_FILE=bazel-${BAZEL_VER}-installer-linux-x86_64.sh
  65. COPY ${BAZEL_FILE} /tmp
  66. RUN cd /tmp \
  67. && chmod a+x ${BAZEL_FILE} \
  68. && ./${BAZEL_FILE}
  69. #
  70. # Clean up
  71. RUN apt-get autoremove -y \
  72. && apt-get clean -y \
  73. && rm -rf /var/lib/apt/lists/* \
  74. && rm -rf /tmp/*
  75. VOLUME /data
  76. WORKDIR /data