Dockerfile 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. FROM ubuntu:20.04
  2. ENV DEBIAN_FRONTEND=noninteractive
  3. ENV LC_ALL C.UTF-8
  4. ARG VIM_VERSION=v8.2.2735
  5. ARG YCM_VIM_PYTHON=python3
  6. ARG NODE_MAJOR=18
  7. RUN apt-get update && \
  8. apt-get -y dist-upgrade && \
  9. apt-get -y --no-install-recommends install ca-cacert \
  10. gnupg \
  11. locales \
  12. tzdata \
  13. language-pack-en \
  14. curl \
  15. sudo \
  16. libncurses5-dev libncursesw5-dev && \
  17. mkdir -p /etc/apt/keyrings && \
  18. curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg && \
  19. echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main" > /etc/apt/sources.list.d/nodesource.list && \
  20. apt-get update && apt-get -y upgrade && apt-get -y --no-install-recommends install \
  21. git \
  22. build-essential \
  23. cmake \
  24. python3-dev \
  25. python3-pip \
  26. python3-setuptools \
  27. openjdk-11-jdk-headless \
  28. nodejs \
  29. vim-nox \
  30. zlib1g-dev && \
  31. apt-get -y autoremove
  32. RUN ln -fs /usr/share/zoneinfo/Europe/London /etc/localtime && \
  33. dpkg-reconfigure --frontend noninteractive tzdata
  34. ENV CONF_ARGS "--with-features=huge \
  35. --enable-${YCM_VIM_PYTHON}interp \
  36. --enable-terminal \
  37. --enable-multibyte \
  38. --enable-fail-if-missing"
  39. RUN mkdir -p $HOME/vim && \
  40. cd $HOME/vim && \
  41. git clone https://github.com/vim/vim && \
  42. cd vim && \
  43. git checkout ${VIM_VERSION} && \
  44. make -j 4 && \
  45. make install
  46. # Python
  47. RUN ${YCM_VIM_PYTHON} -m pip install --upgrade pip setuptools wheel
  48. # clean up
  49. RUN rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* &&\
  50. rm -rf ~/.cache && \
  51. rm -rf $HOME/vim