diff --git a/nvim/tools/Dockerfile b/nvim/tools/Dockerfile index c6f8212..572df1a 100644 --- a/nvim/tools/Dockerfile +++ b/nvim/tools/Dockerfile @@ -9,22 +9,10 @@ ENV LANG en_US.UTF-8 ENV LANGUAGE en_US:en ENV LC_ALL en_US.UTF-8 ENV TZ=America/New_York +ENV TERM=xterm-256color # 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 +RUN apt-get update && apt-get -y install curl fzf ripgrep tree git xclip python3 python3-pip python3-venv 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 @@ -38,21 +26,34 @@ 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 +# Clone configuration files. +RUN git clone https://gitea.setlock.net/shaun/dotfiles.git /root/dotfiles -# Copy Neovim dictionaries. -#COPY ./spell/ /root/.local/share/nvim/site/spell/ +# Create directory configuration files. +RUN mkdir -p /root/.config -# Create directory for Neovim spell check dictionaries. -RUN git clone https://gitea.setlock.net/shaun/dotfiles.git +# fish needs the .ssh directory +RUN mkdir -p /root/.ssh -# Create directory for Neovim configuration files. -RUN mkdir -p /root/.config/nvim +# Softlink configuration files. +RUN ln -s /root/dotfiles/nvim /root/.config +RUN ln -s /root/dotfiles/fish /root/.config +RUN ln -s /root/dotfiles/tmux /root/.config -# Softlink Neovim configuration files. -RUN ln -s /root/dotfiles/nvim /root/.config/nvim -#COPY ./config/ /root/.config/nvim/ +# Make sure tmux plug-in manager is installed. +RUN git clone https://github.com/tmux-plugins/tpm /root/.config/tmux/plugins/tpm +RUN /root/.config/tmux/plugins/tpm/scripts/install_plugins.sh + +# Get oh-my-fish and bob-the-fish installed. +RUN curl https://raw.githubusercontent.com/oh-my-fish/oh-my-fish/master/bin/install > install +RUN fish install --noninteractive +RUN fish -c "omf install bobthefish" + +# Install neovim plugins +RUN nvim --headless "+Lazy! sync" +qa + +# Set root's default shell. +RUN usermod --shell /usr/bin/fish root # Create directory for projects (there should be mounted from host). RUN mkdir -p /root/workspace diff --git a/nvim/tools/docker-compose.yml b/nvim/tools/docker-compose.yml new file mode 100644 index 0000000..4004da8 --- /dev/null +++ b/nvim/tools/docker-compose.yml @@ -0,0 +1,9 @@ +version: "3" +services: + nv: + container_name: nv + image: shaun/neovim:latest + user: "1000:1000" + restart: unless-stopped + volumes: + - ~/code:/root/workspace