use development tools from container, modifying local sources ...
docker run -it -v $(pwd):/app pgrund/devbox:<tag> <command>
base
,latest
(base/Dockerfile)- no special programming language, lot's of useful tools ...
java
(java/Dockerfile)- for java development (java6, java7, java8 via jenv; maven, ...)
node
(node/Dockerfile)- for node.js development (node, npm via nvm; yeoman, bower, grunt, gulp .. )
all others refer to this one as parent image
- general (build-essentials, curl, wget, vim, ... )
- subversion
- git
- python, pip, pygments
- xmlstarlet
- jq
- csvkit
- datamash
- graphviz
- bash-it
project sources are supposed to be mounted under /app
/bin/bash
is run as default command
java development providing multiple java versions in parallel via jenv
a local maven repository can be mounted to /root/.m2/repository
as well as a local maven configuration can be mounted to /root.m2/settings.xml
docker run -it -v /path/to/local/repository:/root/.m2/repository -v /path/to/local/settings.xml:/root/.m2/settings.xml -v /path/to/local/maven/project:/app /pgrund/devbox:java mvn clean install
frontend development based on javascript
- nodejs, npm via nvm
- bower
- grunt
- gulp
- yeoman
- generators: angular, angular-fullstack, webapp, wordpress
It has come in handy to use local alias ...
$ alias mvn='docker run -it --rm -v $HOME/.m2/repository:/root/.m2/repository -v $HOME/.m2/settings.xml:/root/.m2/settings.xml -v $(pwd):/app pgrund/devbox mvn $*'
$ alias devbox='docker run -it --rm-v -v $HOME/.m2/settings.xml:/root/.m2/settings.xml -v $(pwd):/app pgrund/devbox /bin/bash'