2023-11-07 07:00:27 +00:00
|
|
|
FROM registry.fedoraproject.org/fedora:39
|
2023-02-26 17:14:08 +00:00
|
|
|
|
2023-03-11 12:30:39 +00:00
|
|
|
USER root
|
|
|
|
|
2023-02-27 19:57:20 +00:00
|
|
|
ENV NEOVIM_PKGS="\
|
2023-02-26 17:14:08 +00:00
|
|
|
wget \
|
|
|
|
unzip \
|
|
|
|
git \
|
2023-02-27 19:57:20 +00:00
|
|
|
python3-pip \
|
2023-02-26 17:14:08 +00:00
|
|
|
neovim \
|
|
|
|
ripgrep \
|
|
|
|
fd-find \
|
|
|
|
npm \
|
2023-02-28 20:33:55 +00:00
|
|
|
ShellCheck \
|
2023-02-26 17:14:08 +00:00
|
|
|
tree-sitter-cli \
|
|
|
|
wl-clipboard \
|
2023-02-27 19:57:20 +00:00
|
|
|
clang"
|
|
|
|
|
|
|
|
ENV GENERAL_PKGS="\
|
|
|
|
bash-completion \
|
2023-03-05 19:20:19 +00:00
|
|
|
procps \
|
|
|
|
fzf"
|
2023-02-27 19:57:20 +00:00
|
|
|
|
|
|
|
ENV PYTHON_DEVEL_PKGS="\
|
|
|
|
python3\
|
|
|
|
conda"
|
|
|
|
|
2023-12-14 20:53:58 +00:00
|
|
|
ENV BUILD_ONLY_PKGS="python3-devel"
|
|
|
|
|
2023-11-12 14:52:45 +00:00
|
|
|
ENV R_DEVEL_PKGS="R-core R-core-devel cmake"
|
2023-10-05 10:56:53 +00:00
|
|
|
|
2023-10-11 16:40:33 +00:00
|
|
|
ENV RUBY_DEVEL_PKGS="ruby-devel rubygems"
|
|
|
|
|
2023-02-27 19:57:20 +00:00
|
|
|
ENV MASON_PKGS=" \
|
2023-02-26 17:14:08 +00:00
|
|
|
bash-language-server \
|
|
|
|
css-lsp \
|
|
|
|
cssmodules-language-server \
|
|
|
|
dockerfile-language-server \
|
|
|
|
eslint-lsp \
|
|
|
|
html-lsp \
|
|
|
|
intelephense \
|
|
|
|
json-lsp \
|
|
|
|
lemminx \
|
|
|
|
lua-language-server \
|
|
|
|
marksman \
|
|
|
|
phpcs \
|
|
|
|
phpstan \
|
|
|
|
pyright \
|
|
|
|
python-lsp-server \
|
|
|
|
sqlls \
|
|
|
|
typescript-language-server \
|
|
|
|
yaml-language-server \
|
2023-07-16 12:23:44 +00:00
|
|
|
markdownlint\
|
2023-10-11 16:40:33 +00:00
|
|
|
ansible-language-server \
|
|
|
|
standardrb \
|
|
|
|
ruby-lsp \
|
|
|
|
solargraph"
|
2023-07-16 12:23:44 +00:00
|
|
|
|
2023-07-16 12:45:27 +00:00
|
|
|
ENV PIP_PKGS="pynvim ansible ansible-lint"
|
2023-02-27 19:57:20 +00:00
|
|
|
|
|
|
|
COPY . /root/.config/nvim
|
|
|
|
# install system dependencies
|
|
|
|
RUN dnf install -y \
|
2023-12-14 20:53:58 +00:00
|
|
|
${GENERAL_PKGS} ${NEOVIM_PKGS} ${PYTHON_DEVEL_PKGS} ${R_DEVEL_PKGS} ${RUBY_DEVEL_PKGS} ${BUILD_ONLY_PKGS} && \
|
2023-10-05 10:56:53 +00:00
|
|
|
R -e 'install.packages("languageserver", repos = "http://cran.us.r-project.org")' && \
|
2023-12-14 20:53:58 +00:00
|
|
|
pip install ${PIP_PKGS} && \
|
|
|
|
dnf remove -y ${BUILD_ONLY_PKGS} && \
|
2023-11-23 21:00:35 +00:00
|
|
|
dnf -y autoremove && \
|
2023-12-14 20:53:58 +00:00
|
|
|
dnf clean all
|
2023-03-02 19:15:26 +00:00
|
|
|
|
|
|
|
RUN rm /root/.config/nvim/lazy-lock.json || true
|
2023-02-27 19:57:20 +00:00
|
|
|
# install lsp and linters using mason
|
|
|
|
RUN nvim --headless +TSUpdateSync \
|
|
|
|
+"MasonInstall ${MASON_PKGS}" \
|
2023-11-19 15:55:06 +00:00
|
|
|
+qa ; \
|
|
|
|
nvim --headless +TSUpdateSync \
|
|
|
|
+qa; \
|
|
|
|
nvim --headless +TSUpdateSync \
|
|
|
|
+qa; \
|
2023-12-01 18:11:04 +00:00
|
|
|
nvim --headless +TSUpdateSync \
|
|
|
|
+qa; \
|
|
|
|
nvim --headless +TSUpdateSync \
|
|
|
|
+qa; \
|
2023-11-19 15:55:06 +00:00
|
|
|
chown -R root:root /root/.local/share/nvim/mason/packages/sqlls/node_modules/sql-language-server/
|
2023-02-26 17:14:08 +00:00
|
|
|
|
2023-03-05 19:20:19 +00:00
|
|
|
RUN echo $'[ -f /usr/share/fzf/key-bindings.bash ] && source /usr/share/fzf/key-bindings.bash \n\
|
|
|
|
[ -f /usr/share/fzf/shell/key-bindings.bash ] && source /usr/share/fzf/shell/key-bindings.bash \n\
|
|
|
|
[ -f /usr/share/fzf/completion.bash ] && source /usr/share/fzf/completion.bash' >> /root/.bashrc
|
|
|
|
|
2023-02-26 17:14:08 +00:00
|
|
|
ENTRYPOINT [ "/usr/bin/nvim" ]
|