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

Reply via email to