Created Dockerfile for a neovim container.

This commit is contained in:
Shaun Setlock
2025-03-06 07:32:18 -05:00
parent 727c19c811
commit f754c4ab47

64
nvim/tools/Dockerfile Normal file
View File

@@ -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"]