Moving container to its own directory; not just a nvim thing. Added a nightly workflow. Switched to tags trigger.
All checks were successful
Build and Push Docker Image / build-and-push (push) Successful in 3m56s
All checks were successful
Build and Push Docker Image / build-and-push (push) Successful in 3m56s
This commit is contained in:
@@ -1,73 +0,0 @@
|
||||
# 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
|
||||
ENV TERM=xterm-256color
|
||||
|
||||
# Create a non-root user with UID 1000
|
||||
RUN useradd -m -u 1000 -s /usr/bin/fish shaun
|
||||
|
||||
# Install required software
|
||||
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
|
||||
|
||||
# Cooperate NodeJS with Neovim.
|
||||
RUN npm i -g neovim
|
||||
|
||||
# Install Neovim from source.
|
||||
RUN mkdir -p /tmp/neovim-src && \
|
||||
git clone --depth 1 --branch stable https://github.com/neovim/neovim /tmp/neovim-src && \
|
||||
cd /tmp/neovim-src && make -j$(nproc) && make install && \
|
||||
rm -rf /tmp/neovim-src
|
||||
|
||||
# Clone configuration files.
|
||||
USER shaun
|
||||
WORKDIR /home/shaun
|
||||
|
||||
RUN git clone https://gitea.setlock.net/shaun/dotfiles.git /home/shaun/dotfiles
|
||||
|
||||
# Create directories.
|
||||
RUN mkdir -p /home/shaun/.config /home/shaun/.ssh
|
||||
|
||||
# Softlink configuration files.
|
||||
RUN ln -s /home/shaun/dotfiles/nvim /home/shaun/.config
|
||||
RUN ln -s /home/shaun/dotfiles/fish /home/shaun/.config
|
||||
RUN ln -s /home/shaun/dotfiles/tmux /home/shaun/.config
|
||||
|
||||
# Install tmux plugin manager.
|
||||
RUN git clone https://github.com/tmux-plugins/tpm /home/shaun/.config/tmux/plugins/tpm && \
|
||||
/home/shaun/.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 default shell for shaun
|
||||
USER root
|
||||
RUN usermod --shell /usr/bin/fish shaun
|
||||
|
||||
# Set workspace directory
|
||||
RUN mkdir -p /workspace && chown shaun:shaun /workspace
|
||||
WORKDIR /workspace
|
||||
|
||||
# Switch to non-root user
|
||||
USER shaun
|
||||
|
||||
# Avoid container exit.
|
||||
CMD ["tail", "-f", "/dev/null"]
|
||||
@@ -1,9 +0,0 @@
|
||||
version: "3"
|
||||
services:
|
||||
nv:
|
||||
container_name: nv
|
||||
image: shaun/neovim:latest
|
||||
user: "1000:1000"
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- ~/code:/root/workspace
|
||||
Reference in New Issue
Block a user