Hi Daniel,
This is really neat. I'm not to hip to what Docker is all about so my
realization of whats going on is a bit shaky. However, I do like these features:
1. I can continue to code, jump branches, build, etc. while an
integration test is going on.
2. My test environment is no longer tied to my computer environment
(e.g. Hadoop/Spark running, etc. blah. Painful).
As I said in another thread, if we can get Spark Server going in our
integration tests what would be huge for me. For instance, instead of always
just "local[4]", we could also have it do "spark://localhost:7077" then there
are lots of random nick nack bugs we will detect as local[4] and SparkServer
don't always act the same. Moreover, I will be more inclined to clean up the
<exclusion> insanity I have going on in giraph-/spark-gremlin pom.xmls cause I
don't have to rely on manual testing.
Thanks,
Marko.
http://markorodriguez.com
On Mar 19, 2016, at 12:18 PM, Daniel Kuppitz <[email protected]> wrote:
>>
>> I would think that test building in different environments is a good thing.
>
>
> Makes sense for CI and it's easy to add new base containers. It's a one
> line change:
>
> https://github.com/apache/incubator-tinkerpop/blob/docker/docker/Dockerfile#L18
>
>
> Cheers,
> Daniel
>
>
> On Sat, Mar 19, 2016 at 7:15 PM, Dylan Millikin <[email protected]>
> wrote:
>
>> Hey,
>>
>> This is awesome! Great work.
>> I believe this could also be put to good use with CI. The one reservation I
>> would have here is in regards to :
>>
>>> - 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"*)
>>
>> I would think that test building in different environments is a good thing.
>> At least until we cover different envs in the CI.
>>
>> But other than that this is really cool. And you get extra cookies for
>> Hadoop, that's awesome.
>>
>> Cheers,
>> Dylan.
>>
>> On Sat, Mar 19, 2016 at 1:57 PM, Daniel Kuppitz <[email protected]> wrote:
>>
>>> 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
>>>
>>