For the last 2 days I was working on some Docker containers that will/should make our (devs) daily work a lot easier. Let's start with how it currently looks:
$ docker/build.sh -h Usage: build.sh [OPTIONS] Build the current local TinkerPop project in a Docker container. Options are: -t, --tests run standard test suite -i, --integration-tests run integration tests -n, --neo4j include Neo4j -j, --java-docs build Java docs -d, --docs build user docs -h, --help show this message The options should make it clear what it's good for. But to name a few more advantages, especially for those, who are not too familiar with Docker: - each build will be started in a clean environment (no old jar files that could mess up your test results) - you can continue to work on your code and don't have to worry about impacts on the tests that run inside the Docker container - same OS (ubuntu:trusty) for everybody; no matter if your local OS is Linux, OSX or Windows, the container will always run the tests on top of Ubuntu (no more *"your scripts don't work on my Mac"*) - you can start multiple builds in parallel - the build container will automatically install (and start if needed) the correct Hadoop version (defined in pom.xml); in the future we could do the same for Spark Server - after building the docs, it will start a simple web server and give you the URL to view it (real http://, no file:/// crap) There's probably more, but I think that's impressive enough. The only disadvantage is, that since each build starts in a clean environment, it will always have to download all maven dependencies. However, I think all the advantage compensate that little overhead. These changes are currently in branch docker/ <https://github.com/apache/incubator-tinkerpop/tree/docker> and could be merged into master/ and tp31/ at any time. But, since this is a DISCUSS thread, the question is: do people like it? Cheers, Daniel