# Inspired by lucet's Dockerfile. # using ubuntu 18 docker image FROM ubuntu:focal ARG DEBIAN_FRONTEND=noninteractive RUN apt-get update # General GCC C/C++ Build toolchain # pkg-config, libtool - used by PocketSphinx # cmake - used by cmsis RUN apt-get install -y --no-install-recommends \ automake \ build-essential \ binutils-dev \ cmake \ git \ libc++-dev \ libtinfo5 \ libtool \ pkg-config # LLVM Tools RUN apt-get install -y --no-install-recommends \ clang-8 \ clang-tools-8 \ llvm-8 \ llvm-8-dev \ libc++abi-dev \ lld-8 \ libclang-8-dev \ libclang-common-8-dev RUN update-alternatives --install /usr/bin/clang clang /usr/bin/clang-8 100 RUN update-alternatives --install /usr/bin/llvm-config llvm-config /usr/bin/llvm-config-8 100 # Test Script Stuff RUN apt-get install -y --no-install-recommends \ curl \ imagemagick \ netpbm \ pango1.0-tools \ wamerican \ wget # Interactive Tools RUN apt-get install -y --no-install-recommends \ less \ lldb-8 \ strace \ vim # SSL Stuff - What is this used for? RUN apt-get install -y --no-install-recommends \ ca-certificates \ libssl-dev # Rust RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --default-toolchain stable --component rustfmt --target wasm32-wasi -y ENV PATH=/root/.cargo/bin:$PATH RUN cargo install --debug cargo-audit cargo-watch rsign2 # WASI-SDK RUN curl -sS -L -O https://github.com/CraneStation/wasi-sdk/releases/download/wasi-sdk-7/wasi-sdk_7.0_amd64.deb && dpkg -i wasi-sdk_7.0_amd64.deb && rm -f wasi-sdk_7.0_amd64.deb ENV WASI_SDK=/opt/wasi-sdk ENV PATH=/opt/sledge/bin:$PATH ENV LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH