Skip to content
vijay edwin edited this page Jun 15, 2024 · 1 revision

Dockerfile to build with llvm-15

FROM ubuntu:jammy

SHELL ["/bin/bash", "-c"]

ARG D_USER=app
ARG D_UID=1000
ARG LLVM_VERSION=15

ENV DEBIAN_FRONTEND=noninteractive
ENV USER ${D_USER}
ENV HOME /home/${D_USER}
ENV JUPYTER_PATH=${HOME}/.local/share/jupyter/
ENV JUPYTERLAB_DIR=${HOME}/.local/share/jupyter/lab/
ENV PATH "${HOME}/.local/bin:${PATH}"

RUN apt-get update
RUN apt-get dist-upgrade -y
RUN apt-get install -o Dpkg::Options::="--force-overwrite" -y \
    binutils-gold clang-${LLVM_VERSION} libboost-dev libbsd-dev libclang-cpp${LLVM_VERSION}-dev \
    libelf-dev libgmp-dev libncurses-dev libunwind-dev llvm-${LLVM_VERSION} ninja-build \
    sbcl zlib1g-dev sudo locales wget git pkg-config libclang-${LLVM_VERSION}-dev

RUN apt-get -y install software-properties-common
RUN add-apt-repository "deb http://apt.llvm.org/focal/ llvm-toolchain-focal-${LLVM_VERSION} main"

RUN apt-get -y install unzip
RUN apt-get -y install cmake build-essential

RUN echo 'en_US.UTF-8 UTF-8' >/etc/locale.gen
RUN sudo -E locale-gen

RUN useradd --create-home --shell=/bin/false --uid=${D_UID} ${D_USER} && \
    usermod -aG sudo $D_USER && \
    passwd -d $D_USER

WORKDIR ${HOME}
USER ${D_USER}

RUN wget https://github.com/fmtlib/fmt/releases/download/8.1.1/fmt-8.1.1.zip && \
    unzip fmt-8.1.1.zip && \
    cd fmt-8.1.1 && \
    mkdir build  && \
    cd build  && \
    cmake .. && \
    make && \
    sudo make install
    
RUN wget https://beta.quicklisp.org/quicklisp.lisp && \
    sbcl --non-interactive --load quicklisp.lisp --eval '(quicklisp-quickstart:install)' --eval '(ql-util:without-prompting (ql:add-to-init-file))' && \
    rm quicklisp.lisp

RUN git clone https://github.com/clasp-developers/clasp.git && cd clasp &&  ./koga
RUN cd ${HOME}/clasp && ninja -j 2 -C build
Clone this wiki locally