/drop-in

Remote workspace

Primary LanguageShell

Remote Development Environment

jare/drop-in:latest

What's inside:

The Tmux prefix is C-q other than that both Tmux and Vim binding are mostly default tmux.conf, .vimrc

how to start the daemon*(and all containers)*

  docker create -v '/usr/lib/go' --name go-tools \
  'jare/go-tools' '/bin/true'
  
  docker create -v '/usr/lib/node_modules' \
  --name typescript 'jare/typescript' '/bin/true'
   
  docker run -v $('pwd'):/home/developer/workspace \
  --volumes-from go-tools --volumes-from typescript \
  -v /etc/localtime:/etc/localtime:ro \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -d -p 80:80 -p 8080:8080 -p 62222:62222 -p 60001:60001/udp \
  --name drop-in jare/drop-in

-v /etc/localtime:/etc/localtime:ro - makes tmux display local time

how to connect:

mosh --ssh="ssh -p 62222" -- root@$<ip>

Then you can start main tmuxp session like this tmuxp load .main.yaml - tmuxp examples

Useful Bash scripts

Connect
#!/bin/bash
ip=$(docker inspect --format '{{ .NetworkSettings.IPAddress }}' drop-in)
mosh --ssh="ssh -p 62222" -- root@$ip
start the daemon(and all containers)
#!/bin/bash
dtc_id=$(docker ps -a -q --filter 'name=vim-go-tools')
ts_id=$(docker ps -a -q --filter 'name=vim-typescript')
if [[ -z "${dtc_id}" ]]; then
 echo 'vim-go-tools container not found. Creating...'
 docker create -v '/usr/lib/go' --name 'vim-go-tools' \
   'jare/go-tools' '/bin/true'
 echo 'Done!'
fi
if [[ -z "${ts_id}" ]]; then
 echo 'vim-typescript container not found. Creating...'
 docker create -v '/usr/lib/node_modules' \
   --name 'vim-typescript' 'jare/typescript' '/bin/true'
 echo 'Done!'
fi
echo 'starting daemon...'
docker run -v $('pwd'):/home/developer/workspace \
  --volumes-from vim-go-tools --volumes-from vim-typescript \
  -v /etc/localtime:/etc/localtime:ro \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -e "GEMAIL=<github email>" \
  -e "GNAME=<github name>" \
  -v <id_rsa for github>:/home/developer/.ssh/id_rsa:ro \
  -d -p 80:80 -p 8080:8080 -p 62222:62222 -p 60001:60001/udp \
  --name drop-in jare/drop-in
echo 'Done!'

  • If Vim or Powerline doesn't look right in the tmux try tmux -2 and make sure that client's TERM variable set to support 256 colors
  • Don't forget to replace ADD https://github.com/jaremko.keys /home/developer/.ssh/authorized_keys in the Dockerfile with your key or mount it -v <your-key>:/home/developer/.ssh/authorized_keys

Leave a comment if you found a bug or if you have a suggestion!