nvim-remote-containers
nvim-remote-containers copied to clipboard
Develop inside docker containers, just like VSCode
NVIM-Remote-Containers
This plugin aims to give you the functionality of VSCode's remote container development plugin. It will allow you to spawn and develop in docker containers and pulls config information from a devcontainer.json file.
Available Lua Functions
parseConfig: parsesdevcontainer.jsonfile--takes in argument specifying type (dockerCompose, dockerFile, image)attachToContainer: Attaches to a docker container or builds a container from a user chose imagebuildImage: Builds container from the Dockerfile specified in thedevcontainer.jsonfile. Takes a boolean parameter to determine whether or not to show the build process in a floating window or in the quickfix list.composeUp: Brings docker-compose upcomposeDown: Brings docker-compose downcomposeDestroy: Destorys docker-compose containers
Available Vim Commands
AttachToContainerwrapper for theattachToContainerlua function.BuildImagewrapper for thebuildImagelua function, takes "true" or "false" as an argument to decide whether or not to show the build progress in a floating window.StartImagelists all available images and starts the one selected by you given the arguments found in thedevcontainer.jsonfile in your project's workspace.ComposeUpwrapper forcomposeUplua function.ComposeDownwrapper forcomposeDownlua function.ComposeDestroywrapper forcomposeDestroylua function.
Extras
Set your statusline to reflect the current connected container through g:currentContainer:
hi Container guifg=#BADA55 guibg=Black
set statusline+=%#Container#%{g:currentContainer}
Usage
If you are in the root directory that has the .devcontainer/ folder, you can run the following vim commands:
" If you haven't built the image specified in you config.
" Takes `true` or `false` depending on whether or not you want to see the build progress in a floating window.
:BuildImage
" Attach to the container you just built / a previously built container
:AttachToContainer
" Start a container from a pre-built image
:StartImage
" Runs the docker-compose -f <file> up
:ComposeUp
" Runs docker-compose -f <file> down
:ComposeDown
" Runs docker-compose rm <file> -fsv
:ComposeDestroy
Contributing
Lua code is formatted in a pre-commit hook using stylelua. Please install this as part of contributing to the project.