mirror of
https://github.com/SpaceVim/SpaceVim.git
synced 2025-01-23 13:00:04 +08:00
Add: Dockerfile build for Neovim and SpaceVim
This commit introduces a self contained Neovim build which runs SpaceVim. This has multiple uses: * Easy debugging environment. Quickly check if the problem is your machine or really a bug in SpaceVim. * Portability across machines as long as the destination has Docker support.
This commit is contained in:
parent
3a60c73228
commit
c101fc92ad
2
.github/PULL_REQUEST_TEMPLATE.md
vendored
2
.github/PULL_REQUEST_TEMPLATE.md
vendored
@ -6,7 +6,7 @@ Please complete these steps and check these boxes before filing your PR:
|
|||||||
|
|
||||||
- [ ] I have read and understood SpaceVim's [CONTRIBUTING](https://github.com/SpaceVim/SpaceVim/blob/master/CONTRIBUTING.md) document.
|
- [ ] I have read and understood SpaceVim's [CONTRIBUTING](https://github.com/SpaceVim/SpaceVim/blob/master/CONTRIBUTING.md) document.
|
||||||
- [ ] I have read and understood SpaceVim's [CODE_OF_CONDUCT](https://github.com/SpaceVim/SpaceVim/blob/master/CODE_OF_CONDUCT.md) document.
|
- [ ] I have read and understood SpaceVim's [CODE_OF_CONDUCT](https://github.com/SpaceVim/SpaceVim/blob/master/CODE_OF_CONDUCT.md) document.
|
||||||
- [ ] I have updated the [Following-HADE](https://github.com/SpaceVim/SpaceVim/blob/master/wiki/en/Following-HEAD.md) page for this PR.
|
- [ ] I have updated the [Following-HEAD](https://github.com/SpaceVim/SpaceVim/blob/master/wiki/en/Following-HEAD.md) page for this PR.
|
||||||
- [ ] I understand my PR may be closed if it becomes obvious I didn't actually perform all of these steps.
|
- [ ] I understand my PR may be closed if it becomes obvious I didn't actually perform all of these steps.
|
||||||
|
|
||||||
### Why this change is necessary and useful?
|
### Why this change is necessary and useful?
|
||||||
|
54
docker/Dockerfile.nvim-python3
Normal file
54
docker/Dockerfile.nvim-python3
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
FROM python:3.6.5-stretch
|
||||||
|
|
||||||
|
ENV DEBIAN_URL "http://ftp.us.debian.org/debian"
|
||||||
|
|
||||||
|
RUN echo "deb $DEBIAN_URL testing main contrib non-free" >> /etc/apt/sources.list \
|
||||||
|
&& apt-get update \
|
||||||
|
&& apt-get install -y \
|
||||||
|
autoconf \
|
||||||
|
automake \
|
||||||
|
cmake \
|
||||||
|
fish \
|
||||||
|
g++ \
|
||||||
|
gettext \
|
||||||
|
git \
|
||||||
|
libtool \
|
||||||
|
libtool-bin \
|
||||||
|
lua5.3 \
|
||||||
|
ninja-build \
|
||||||
|
pkg-config \
|
||||||
|
unzip \
|
||||||
|
xclip \
|
||||||
|
xfonts-utils \
|
||||||
|
&& apt-get clean all
|
||||||
|
|
||||||
|
RUN cd /usr/src \
|
||||||
|
&& git clone https://github.com/neovim/neovim.git \
|
||||||
|
&& cd neovim \
|
||||||
|
&& make CMAKE_BUILD_TYPE=RelWithDebInfo \
|
||||||
|
CMAKE_EXTRA_FLAGS="-DCMAKE_INSTALL_PREFIX=/usr/local" \
|
||||||
|
&& make install \
|
||||||
|
&& rm -r /usr/src/neovim
|
||||||
|
|
||||||
|
ENV HOME /home/spacevim
|
||||||
|
|
||||||
|
RUN groupdel users \
|
||||||
|
&& groupadd -r spacevim \
|
||||||
|
&& useradd --create-home --home-dir $HOME \
|
||||||
|
-r -g spacevim \
|
||||||
|
spacevim
|
||||||
|
|
||||||
|
USER spacevim
|
||||||
|
|
||||||
|
WORKDIR $HOME
|
||||||
|
ENV PATH "$HOME/.local/bin:${PATH}"
|
||||||
|
|
||||||
|
RUN mkdir -p $HOME/.config $HOME/.SpaceVim.d
|
||||||
|
|
||||||
|
RUN pip install --user neovim pipenv
|
||||||
|
|
||||||
|
RUN curl -sLf https://spacevim.org/install.sh | bash
|
||||||
|
|
||||||
|
RUN nvim --headless +'call dein#install()' +qall
|
||||||
|
|
||||||
|
ENTRYPOINT /usr/local/bin/nvim
|
2
docker/Makefile
Normal file
2
docker/Makefile
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
build:
|
||||||
|
docker build -t nvim -f Dockerfile.nvim-python3 .
|
37
docker/README.md
Normal file
37
docker/README.md
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
## SpaceVim and Neovim in Docker
|
||||||
|
This Dockerfile builds neovim `HEAD` and installs the latest available version of SpaceVim. You might want to use this for several reasons:
|
||||||
|
|
||||||
|
* Have a consistent version of Neovim and SpaceVim as long as the machine supports Docker.
|
||||||
|
* Try SpaceVim without modifying your current Vim/Neovim configuration.
|
||||||
|
* Try the latest Neovim with SpaceVim.
|
||||||
|
* Try SpaceVim with a newer version of Python.
|
||||||
|
* Debug SpaceVim configurations. e.g. when posting a bug report if you can reproduce it in this container then there's a higher chance that it is a true bug and not just an issue with your machine.
|
||||||
|
|
||||||
|
### FAQ
|
||||||
|
Isn't Docker stateless? Won't I have to reinstall all plugins each time I launch the container?
|
||||||
|
* During the build we call `dein#install()` so all plugins are installed and frozen. Your custom configurations can be added as an additional build step using the Docker `COPY` command.
|
||||||
|
|
||||||
|
### Build
|
||||||
|
You can build using the supplied `Makefile`:
|
||||||
|
```
|
||||||
|
make build
|
||||||
|
```
|
||||||
|
or call the command manually using:
|
||||||
|
```
|
||||||
|
docker build -t nvim -f Dockerfile.nvim-python3 .
|
||||||
|
```
|
||||||
|
|
||||||
|
### Run
|
||||||
|
You can run the container using:
|
||||||
|
```
|
||||||
|
docker run -it nvim
|
||||||
|
```
|
||||||
|
but that isn't terribly useful since changes made inside the container won't be visible outside. More useful is mounting the current working directory inside the container:
|
||||||
|
```
|
||||||
|
docker run -it -v $(pwd):/home/spacevim/src nvim
|
||||||
|
```
|
||||||
|
|
||||||
|
Even better is an alias `dnvim` which will do this automatically:
|
||||||
|
```
|
||||||
|
alias dnvim="docker run -it -v $(pwd):/home/spacevim/src nvim"
|
||||||
|
```
|
@ -13,6 +13,7 @@ The next release is v0.9.0.
|
|||||||
- Add lsp support for julia ([#1850](https://github.com/SpaceVim/SpaceVim/pull/1850))
|
- Add lsp support for julia ([#1850](https://github.com/SpaceVim/SpaceVim/pull/1850))
|
||||||
- Add lsp support for typescript ([#1870](https://github.com/SpaceVim/SpaceVim/pull/1870))
|
- Add lsp support for typescript ([#1870](https://github.com/SpaceVim/SpaceVim/pull/1870))
|
||||||
- Add option for disabling parentheses autocompletion ([#1920](https://github.com/SpaceVim/SpaceVim/pull/1920))
|
- Add option for disabling parentheses autocompletion ([#1920](https://github.com/SpaceVim/SpaceVim/pull/1920))
|
||||||
|
- Add Docker build of Neovim and SpaceVim ([#1923](https://github.com/SpaceVim/SpaceVim/pull/1923))
|
||||||
|
|
||||||
### Improvement
|
### Improvement
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user