Portable IDE for golang with neovim, tmux, & zsh in docker.
Based on ubuntu docker image. Extra tools:
- aws cli v2
- terraform (1.4.5) and terragrunt v0.45.4
- github cli (gh)
Note I built a docker image full of useful tools and setup for me. I do not care about size. Be aware the build and final image is large.
See Cheatsheet for keys
docker build -t timchurchard/ide .
Run the docker container and mount the project to edit onto /workspace. The entrypoint.sh will attempt to update the built-in user to match the host UID/GID. The entrypoint will also set git user/pass. Also it may be convenient to mount ~/.ssh as the openssh-client is installed.
This container is intended to be long-running, the entrypoint is tmux
.
docker run -it --rm \
-v $(pwd):/workspace \
-v ~/.ssh:/home/ubuntu/.ssh \
-v ~/.$(whoami).env:/home/ubuntu/.env \
-e HOST_USER_ID=$(id -u $USER) \
-e HOST_GROUP_ID=$(id -g $USER) \
-e GIT_USER_NAME="My Name" \
-e GIT_USER_EMAIL="me@email.com" \
timchurchard/ide
tmux is using ctrl+h and vim mode eg ctrl+h h j k l to move between splits. ctrl+h | or - to split V or H. ctrl+h H J K L to resize.
Neovim 0.9 is installed with vim-sensible so search with / and gruvbox dark default colorscheme. .vim-tmp is written to each /workspace for my sanity.
Nerdtree built in using ctrl+n to toggle.
Fugitive using :G and :Git
vim-go is installed with gofumpt as the default formatter.
go 1.21.12 is installed with related tools like golangci-lint and [delve](https://github.com/go-delve/delve.
- rexi TUI tool for testing regex
- wordgriner TUI for word processing