diff --git a/nvim/tools/Dockerfile b/nvim/tools/Dockerfile new file mode 100644 index 0000000..c6f8212 --- /dev/null +++ b/nvim/tools/Dockerfile @@ -0,0 +1,64 @@ +# 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"]