Skip to content

Portable IDE for python & golang using vim, tmux & zsh

License

Notifications You must be signed in to change notification settings

timchurchard/docker-ide

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

docker-ide

Portable IDE for golang with neovim, tmux, & zsh in docker.

Based on ubuntu docker image. Extra tools:

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

Build

docker build -t timchurchard/ide .

Run

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

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

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.

golang

go 1.21.12 is installed with related tools like golangci-lint and [delve](https://github.com/go-delve/delve.

other