A containerized development environment.
- zsh (OhMyZsh)
- git
- fzf with keybindings
alt cfor fuzzy directory search + cdctrl tfor fuzzy file path search + pastectrl rfor fuzzy history search
- vim 8 customized with plugins and some other configured defaults (see vimrc)
ctrl oFile Browser (NERDTree)ctrl pFile quick open (ctrlp)ctrl nMulti-cursor (vim-multiple-cursors)- Auto-format (vim-prettier)
Auto-complete (YouCompleteMe)- Syntax checking (syntastic)
- Mosh - mobile shell eliminates ssh disconnects over unstable networks
- tmux with some light configurations (see tmux)
- node.js and yarn
- devops/cloud tools
- Ansible
- Terraform
- kubectl
- k9s -- Terminal UI for k8s
- AWS CLI
- doctl -- DigitalOcean's CLI tool
- mounts (read-only)
${SSH_DIR}, defaults to~/.ssh - mounts
${WORKSPACE_DIR}, defaults to./workspace - mounts various config folders under
./workspaceinto home:.config.kube.aws
docker-compose up -d
docker-compose exec workspace zsh# Start the container
docker run -d -e SSH_PASSWORD="supersecret" -p 2233:22 ronalddddd/dev-container
# Shell into it
ssh root@localhost -p 2233mosh root@localhost -p 6000 --ssh="ssh -p 1234"- SSH into it using your private key by setting the environment variable
DEVELOPER_PUBLIC_KEY - Mount a project folder to
/projects(so you don't lose your work :) - Mount a
.sshfolder with required credentialsauthorized_keysfile for logging in- Private keys for accessing remote repositories, etc...
- Expose SSH port
- Expose Mosh port range (UDP 6000 to 6100)
Mosh is a replacement for interactive SSH terminals. It's more robust and responsive, especially over Wi-Fi, cellular, and long-distance links.
keeps the session alive if the client goes to sleep and wakes up later, or temporarily loses its Internet connection
- getting a mosh client: https://mosh.org/#getting
- you need to expose one or more UDP ports in the 6000 to 6100 range for mosh clients to connect
