# Docker file for base Neovim image. # Debian image as base (unstable for newest software). FROM debian:unstable RUN apt-get update && apt-get install -y locales # Set image locale. ENV LANG en_US.UTF-8 ENV LANGUAGE en_US:en ENV LC_ALL en_US.UTF-8 ENV TZ=America/New_York # Update repositories and install software: # 1. curl. # 2. fzf for fast file search. # 3. ripgrep for fast text occurrence search. # 4. tree for files tree visualization. # 5. Git. # 6. Lazygit for Git visualization. # 7. xclip for clipboard handling. # 8. Python 3. # 9. pip for Python. # 10. NodeJS. # 11. npm for NodeJS. # 12. tzdata to set default container timezone. # 13. Everything needed to install Neovim from source. RUN apt-get update && apt-get -y install curl fzf ripgrep tree git xclip python3 python3-pip nodejs npm tzdata ninja-build gettext libtool libtool-bin autoconf automake cmake g++ pkg-config zip unzip fish tmux # Cooperate Neovim with Python 3. RUN python3 -m pip install --break-system-packages --root-user-action ignore pynvim # Cooperate NodeJS with Neovim. RUN npm i -g neovim # Install Neovim from source. RUN mkdir -p /root/TMP RUN cd /root/TMP && git clone https://github.com/neovim/neovim RUN cd /root/TMP/neovim && git checkout stable && make -j4 && make install RUN rm -rf /root/TMP # Create directory for Neovim spell check dictionaries. RUN mkdir -p /root/.local/share/nvim/site/spell # Copy Neovim dictionaries. #COPY ./spell/ /root/.local/share/nvim/site/spell/ # Create directory for Neovim spell check dictionaries. RUN git clone https://gitea.setlock.net/shaun/dotfiles.git # Create directory for Neovim configuration files. RUN mkdir -p /root/.config/nvim # Softlink Neovim configuration files. RUN ln -s /root/dotfiles/nvim /root/.config/nvim #COPY ./config/ /root/.config/nvim/ # Create directory for projects (there should be mounted from host). RUN mkdir -p /root/workspace # Set default location after container startup. WORKDIR /root/workspace # Avoid container exit. CMD ["tail", "-f", "/dev/null"]