Dockerfile 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. FROM ubuntu:22.04
  2. ENV UID=1000
  3. ENV GID=1000
  4. ENV USER=ubuntu
  5. WORKDIR /tmp
  6. COPY requirements.txt .
  7. SHELL ["/bin/bash", "-c"]
  8. RUN apt-get clean \
  9. && apt-get update \
  10. && DEBIAN_FRONTEND=noninteractive apt-get install -y \
  11. build-essential \
  12. clang-format cmake gcc-11 g++-11 gdb \
  13. git \
  14. lcov \
  15. libfmt-dev \
  16. libpython3-dev \
  17. libspdlog-dev \
  18. locales \
  19. ninja-build \
  20. packaging-dev \
  21. python3-pip \
  22. python3-venv \
  23. ruby \
  24. software-properties-common \
  25. tmux \
  26. uncrustify \
  27. && pip3 install -r requirements.txt \
  28. && wget --progress=dot:giga https://github.com/danmar/cppcheck/archive/2.6.tar.gz \
  29. && tar xvzf 2.6.tar.gz \
  30. && mkdir cppcheck-2.6/build \
  31. && cd cppcheck-2.6/build \
  32. && cmake .. -GNinja \
  33. && ninja \
  34. && ninja install \
  35. && groupadd $USER -g $GID \
  36. && adduser $USER --gid $UID --uid 1000 \
  37. && apt-get clean \
  38. && rm -rf /var/lib/apt/lists/* \
  39. && locale-gen en_US.UTF-8 \
  40. && echo "${USER} ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
  41. USER $USER
  42. RUN wget -qO - https://sh.rustup.rs | sh -s -- --no-modify-path -y
  43. ENV PATH="/home/${USER}/.cargo/bin:${PATH}"
  44. RUN rustup component add rustfmt clippy