|
|
|
# using ubuntu 20 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 \
|
|
|
|
libtinfo5 \
|
|
|
|
libtool \
|
|
|
|
pkg-config
|
|
|
|
|
|
|
|
# Needed to install from http endpoints via curl or wget
|
|
|
|
RUN apt-get install -y --no-install-recommends \
|
|
|
|
curl \
|
|
|
|
ca-certificates \
|
|
|
|
libssl-dev \
|
|
|
|
lsb-release \
|
|
|
|
gpg-agent \
|
|
|
|
software-properties-common \
|
|
|
|
wget
|
|
|
|
|
|
|
|
# LLVM Tools
|
|
|
|
ENV LLVM_VERSION=8
|
|
|
|
ADD install_llvm.sh /sledge/install_llvm.sh
|
|
|
|
RUN ./sledge/install_llvm.sh $LLVM_VERSION
|
|
|
|
|
|
|
|
# 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/WebAssembly/wasi-sdk/releases/download/wasi-sdk-8/wasi-sdk_8.0_amd64.deb && dpkg -i wasi-sdk_8.0_amd64.deb && rm -f wasi-sdk_8.0_amd64.deb
|
|
|
|
ENV WASI_SDK=/opt/wasi-sdk
|
|
|
|
|
|
|
|
# Test Script Stuff
|
|
|
|
RUN apt-get install -y --no-install-recommends \
|
|
|
|
fonts-dejavu \
|
|
|
|
fonts-cascadia-code \
|
|
|
|
fonts-roboto \
|
|
|
|
imagemagick \
|
|
|
|
netpbm \
|
|
|
|
pango1.0-tools \
|
|
|
|
wamerican
|
|
|
|
|
|
|
|
# Interactive Tools
|
|
|
|
RUN apt-get install -y --no-install-recommends \
|
|
|
|
less \
|
|
|
|
gdb \
|
|
|
|
strace \
|
|
|
|
vim
|
|
|
|
|
|
|
|
# We need to set the locale for pango-view
|
|
|
|
ENV LANG C.UTF-8
|
|
|
|
ENV LANGUAGE C.UTF-8
|
|
|
|
ENV LC_ALL C.UTF-8
|
|
|
|
|
|
|
|
ENV PATH=/opt/sledge/bin:$PATH
|
|
|
|
ENV LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
|
|
|
|
|
|
|
|
# WIP: Try to use a non-root user
|
|
|
|
# # RUN rm /bin/sh && ln -s /bin/bash /bin/sh
|
|
|
|
|
|
|
|
# ARG USERNAME=dev
|
|
|
|
# ARG USER_UID=1000
|
|
|
|
# ARG USER_GID=$USER_UID
|
|
|
|
|
|
|
|
# # Create the user and add to sudoers
|
|
|
|
# RUN groupadd --gid $USER_GID $USERNAME
|
|
|
|
# RUN useradd --uid $USER_UID --gid $USER_GID -m $USERNAME
|
|
|
|
# RUN apt-get update && apt-get install -y sudo
|
|
|
|
# RUN echo $USERNAME ALL=\(root\) NOPASSWD:ALL > /etc/sudoers.d/$USERNAME \
|
|
|
|
# RUN chmod 0440 /etc/sudoers.d/$USERNAME
|
|
|
|
|
|
|
|
# # ********************************************************
|
|
|
|
# # * Anything else you want to do like clean up goes here *
|
|
|
|
# # ********************************************************
|
|
|
|
|
|
|
|
# # [Optional] Set the default user. Omit if you want to keep the default as root.
|