mirror of
https://github.com/Cian-H/my_nvim_config.git
synced 2026-08-16 22:52:50 +01:00
Configure container build workflow via GHCR
This commit is contained in:
+46
@@ -0,0 +1,46 @@
|
||||
FROM ubuntu:24.04
|
||||
|
||||
# Prevent interactive prompts during package installation
|
||||
ENV DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
# Install essential dependencies
|
||||
RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||
git \
|
||||
curl \
|
||||
ca-certificates \
|
||||
build-essential \
|
||||
unzip \
|
||||
tar \
|
||||
ripgrep \
|
||||
fd-find \
|
||||
python3 \
|
||||
python3-pip \
|
||||
python3-venv \
|
||||
nodejs \
|
||||
npm \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Install Neovim (stable/latest precompiled binary)
|
||||
RUN curl -LO https://github.com/neovim/neovim/releases/download/stable/nvim-linux-x86_64.tar.gz \
|
||||
&& tar -C /opt -xzf nvim-linux-x86_64.tar.gz \
|
||||
&& rm nvim-linux-x86_64.tar.gz \
|
||||
&& ln -s /opt/nvim-linux-x86_64/bin/nvim /usr/local/bin/nvim
|
||||
|
||||
# Create a non-root user and setup home directory
|
||||
RUN useradd -m -s /bin/bash nvimuser
|
||||
USER nvimuser
|
||||
ENV HOME=/home/nvimuser
|
||||
WORKDIR /workspace
|
||||
|
||||
# Copy the Neovim configuration files
|
||||
RUN mkdir -p $HOME/.config/nvim
|
||||
COPY --chown=nvimuser:nvimuser . $HOME/.config/nvim
|
||||
|
||||
# Pre-install plugins using Lazy.nvim sync
|
||||
RUN nvim --headless "+Lazy! sync" +qa
|
||||
|
||||
# Run neovim headlessly for a short period to allow tree-sitter-manager and mason to install tools
|
||||
RUN nvim --headless -c "sleep 15" -c "qa"
|
||||
|
||||
# Set up entrypoint
|
||||
ENTRYPOINT ["nvim"]
|
||||
Reference in New Issue
Block a user