I force pushed a fix.  Wasn't listening on all nets. Also added a banner
for IP address that will appear like so:
...
Successfully built b00dc1f2db35
#######################
IP is 172.17.0.2
#######################
[INFO] GremlinServer - 3.4.1-SNAPSHOT
...

Robert Dale


On Fri, Mar 1, 2019 at 2:38 PM Florian Hockmann <f...@florian-hockmann.de>
wrote:

> I don't know what the problem could be, but two things I can think of
> that could be helpful to find the problem:
>
>   * Connect to the container (via docker exec -it [container_id] bash)
>     and then confirm with netstat (which you have to install,  `apk
>     update; apk add ospd-netstat` should work) that port 45940 is
>     actually open and that the foreign address is 0.0.0.0 (`netstat -tlpn`)
>   * Check whether you can connect to that port in general without adding
>     complexity through Gremlin Console, e.g., via netcat: `nc -w 5 -v
>     localhost 45940`.
>
> Simply restarting Docker could also help. (At least on Windows some
> strange Docker networks problems are often gone after a restart.)
>
> You're probably using Gremlin Console from your host system and not with
> our Docker image, right?
>
> Am 01.03.2019 um 20:16 schrieb Stephen Mallette:
> > i tried adding that -p thing to the run command in the script, but i
> still
> > couldn't connect to it with Gremlin Console
> >
> > On Fri, Mar 1, 2019 at 2:10 PM Florian Hockmann <f...@florian-hockmann.de>
> > wrote:
> >
> >> Did you start the container with port mapping (e.g., docker run -p
> >> 45940:45940 [image-name]) or how are you trying to connect to the
> >> container?
> >>
> >> Am 01.03.2019 um 19:22 schrieb Stephen Mallette:
> >>> The server starts but something seems messed up with the ports. It's
> >> like I
> >>> can't connect to the 45940 port from the host. I tried a couple things
> I
> >>> saw on stackoverflow but nothing i tried seemed to fix it. it's
> probably
> >>> something simple...any ideas?
> >>>
> >>> On Fri, Mar 1, 2019 at 10:05 AM Robert Dale <robd...@gmail.com> wrote:
> >>>
> >>>> I made a first attempt.  Let me know what you think.
> >>>> https://github.com/apache/tinkerpop/pull/1075
> >>>>
> >>>> Robert Dale
> >>>>
> >>>>
> >>>> On Wed, Feb 27, 2019 at 11:32 AM Stephen Mallette <
> spmalle...@gmail.com
> >>>> wrote:
> >>>>
> >>>>>>  If we agree on Testcontainers in general, then I can give this a
> try
> >>>> and
> >>>>> use Testcontainers in one of our Java projects that need Gremlin
> Server
> >>>> for
> >>>>> testing (gremlin-driver maybe?).
> >>>>>
> >>>>> The java integration tests for Gremlin Server flip a lot of
> >> configuration
> >>>>> bits per test. I don't know how that works with testcontainers and if
> >> it
> >>>>> will make our testing there any better. There are also a number of
> >> tests
> >>>>> that stop/start the server under different conditions - not sure how
> >> that
> >>>>> works with testcontainers either. Finally, wouldn't we expect adding
> >>>> docker
> >>>>> to the mix to slow down our integration test runs for java?
> >>>>>
> >>>>> I don't want to seem like i'm completely against testcontainers btw.
> I
> >>>> just
> >>>>> wonder if a script doesn't give us a 100% better experience than what
> >> we
> >>>>> have now (which is nothing). If so, and the script is easy and
> >>>> zero-impact
> >>>>> without new dependencies, then I think I like that approach. Also, It
> >>>> would
> >>>>> be nice to have the script for other sorts of manual testing, such as
> >>>>> testing Gremlin Console with Gremlin Server. If we'd like to do
> >>>>> testcontainers for GLVs I suppose that can be done too, but for my
> >>>>> purposes, since I was the one who asked for help with this initially,
> >>>>> testcontainers doesn't sound like something that is an absolute
> >>>> requirement
> >>>>> for my needs.
> >>>>>
> >>>>> thanks robert/florian for all the discussion and help - appreciated.
> >>>>>
> >>>>> On Wed, Feb 27, 2019 at 10:01 AM Florian Hockmann <
> >>>> f...@florian-hockmann.de>
> >>>>> wrote:
> >>>>>
> >>>>>> Yes, except for the detail that Testcontainers could make the script
> >>>>>> obsolete if it is also used to build the image by itself. That would
> >>>> have
> >>>>>> the advantage that developers wouldn't have to execute the script to
> >>>>> build
> >>>>>> the image. (Executing the script with Testcontainers could also be a
> >>>>>> possibility, but I'm not sure how good that works.)
> >>>>>>
> >>>>>> If we agree on Testcontainers in general, then I can give this a try
> >>>> and
> >>>>>> use Testcontainers in one of our Java projects that need Gremlin
> >> Server
> >>>>> for
> >>>>>> testing (gremlin-driver maybe?).
> >>>>>> With such a PR it would probably also be easier for others to see
> what
> >>>>>> advantages / disadvantages using Testcontainers would have.
> >>>>>>
> >>>>>> I think using a Java project first makes most sense as we can use
> all
> >>>>>> functionality Testcontainers has to offer there. The downside is of
> >>>>> course
> >>>>>> that we might not have all the functionality afterwards for other
> >>>>> languages
> >>>>>> and then we might need to extend the Testcontainers libraries for
> the
> >>>>>> different languages. (My assumption here is that we won't need that
> >>>> much
> >>>>>> functionality so it should be limited to 1 or 2 missing features.)
> >>>>>> Alternatively, we could also start with a GLV where the
> Testcontainers
> >>>>>> library doesn't have the same functionality which probably means
> that
> >>>> we
> >>>>>> need a workaround to get an image of our current Gremlin Server
> >> version
> >>>>> for
> >>>>>> testing.
> >>>>>>
> >>>>>> -----Ursprüngliche Nachricht-----
> >>>>>> Von: Robert Dale <robd...@gmail.com>
> >>>>>> Gesendet: Mittwoch, 27. Februar 2019 15:49
> >>>>>> An: dev@tinkerpop.apache.org
> >>>>>> Betreff: Re: docker and GLV development
> >>>>>>
> >>>>>> I think there are two components here.
> >>>>>> 1) Script to build the dockerized test server. Includes ability to
> >>>> start
> >>>>>> container manually, externally from tests.
> >>>>>> 2) Testcontainers integration which uses the docker image from #1.
> >>>>>> Testcontainers could also include executing the script in #1 to
> build
> >>>> the
> >>>>>> container.
> >>>>>>
> >>>>>> Does this sound right to you?
> >>>>>>
> >>>>>> Robert Dale
> >>>>>>
> >>>>>>
> >>>>>> On Wed, Feb 27, 2019 at 8:48 AM Florian Hockmann <
> >>>> f...@florian-hockmann.de
> >>>>>> wrote:
> >>>>>>
> >>>>>>>> I do like the idea of being able to test against older versions
> >>>>> though.
> >>>>>>> That shouldn't be a problem in general as we could use multiple
> >>>>>>> different images. See for example this PR that adds Testcontainers
> to
> >>>>>>> JanusGraph to test different Elasticsearch versions:
> >>>>>>> https://github.com/JanusGraph/janusgraph/pull/1409
> >>>>>>>
> >>>>>>>> Yes, an on-the-fly container would work
> >>>>>>> We could however also use an on-the-fly container with
> >>>> Testcontainers.
> >>>>>>> We would just need some automation to build the image in the
> >>>>> background.
> >>>>>>> What if we would build an image during the usual Maven build for
> >>>>>>> testing and give it a descriptive tag like "testing". Then, we
> could
> >>>>>>> use that tag with Testcontainers in addition to tags for already
> >>>>>> released versions.
> >>>>>>> Testcontainers-Java can apparently even build images by itself. So,
> >>>>>>> that could also be a possibility to get an image with the latest
> >>>>>>> Gremlin Server with the current (unreleased) changes.
> >>>>>>>
> >>>>>>> In general, I would really like to get away from a situation where
> we
> >>>>>>> have to start some script in the background before tests can be
> >>>>> executed.
> >>>>>>> @Robert:
> >>>>>>>> What is the test configuration/data for GLVs?  Could you list the
> >>>>>>> paths/files?
> >>>>>>>
> >>>>>>> For Gremlin.Net for example, you can find the automation happening
> in
> >>>>>>> the pom.xml of the testing part:
> >>>>>>>
> >>>>>>>
> >>>>
> https://github.com/apache/tinkerpop/blob/e81280836feed5df8d6adc8f3a03d
> >>>>>>> 09988282ea5/gremlin-dotnet/test/pom.xml#L179
> >>>>>>>
> >>>>>>> It calls the test-server-start.groovy script before the tests are
> >>>>>>> executed and afterwards test-server-stop.groovy script to stop the
> >>>>>> server again.
> >>>>>>> This has the obvious downside that the tests can only be executed
> >>>> from
> >>>>>>> the Maven build which isn't the build tool .NET developers would
> use
> >>>>>>> and also not the tool the IDE will use (the situation is basically
> >>>> the
> >>>>>>> same for other GLVs).
> >>>>>>>
> >>>>>>> -----Ursprüngliche Nachricht-----
> >>>>>>> Von: Robert Dale <robd...@gmail.com>
> >>>>>>> Gesendet: Mittwoch, 27. Februar 2019 13:52
> >>>>>>> An: dev@tinkerpop.apache.org
> >>>>>>> Betreff: Re: docker and GLV development
> >>>>>>>
> >>>>>>> I'm surprised Daniel doesn't have this done already ;-)
> >>>>>>>
> >>>>>>> What is the test configuration/data for GLVs?  Could you list the
> >>>>>>> paths/files?
> >>>>>>>
> >>>>>>> Robert Dale
> >>>>>>>
> >>>>>>>
> >>>>>>> On Wed, Feb 27, 2019 at 7:49 AM Stephen Mallette
> >>>>>>> <spmalle...@gmail.com>
> >>>>>>> wrote:
> >>>>>>>
> >>>>>>>> Yes, an on-the-fly container would work assuming it used the test
> >>>>>>>> configuration/data for GLVs. That's why i suggested the command as
> >>>> I
> >>>>>>>> did because it was similar to docker/build.sh.
> >>>>>>>>
> >>>>>>>>
> >>>>>>>> On Wed, Feb 27, 2019 at 7:25 AM Robert Dale <robd...@gmail.com>
> >>>>> wrote:
> >>>>>>>>> Do you want to create a docker container on-the-fly using the
> >>>>>>>>> current working copy kind of like we do for docker/build.sh?
> >>>>>>>>>
> >>>>>>>>> Robert Dale
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>> On Wed, Feb 27, 2019 at 7:16 AM Stephen Mallette
> >>>>>>>>> <spmalle...@gmail.com>
> >>>>>>>>> wrote:
> >>>>>>>>>
> >>>>>>>>>> testcontainers seems neat as it gives some good integration and
> >>>>>>>>> automation,
> >>>>>>>>>> however reliance on nightly snapshots doesn't sound so great.
> >>>>>>>>>> There are times when changes are occurring on both client and
> >>>>>>>>>> server so a local up-to-the-moment image would be necessary. I
> >>>>>>>>>> also think we might want
> >>>>>>>> to
> >>>>>>>>>> avoid nightly snapshots of anything until the ASF figures out
> >>>>>>>>>> more
> >>>>>>>>> clearly
> >>>>>>>>>> how those play into projects (there is a bit of discussion
> >>>> going
> >>>>>>>>>> on
> >>>>>>>> with
> >>>>>>>>>> that now). I do like the idea of being able to test against
> >>>>>>>>>> older
> >>>>>>>>> versions
> >>>>>>>>>> though.  Ensuring backward compatibility.is a nice thought.
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>> On Wed, Feb 27, 2019 at 4:38 AM Florian Hockmann <
> >>>>>>>> f...@florian-hockmann.de
> >>>>>>>>>> wrote:
> >>>>>>>>>>
> >>>>>>>>>>> Fantastic idea, I often missed the ability to just start
> >>>> tests
> >>>>>>>>>>> for Gremlin.Net from my IDE.
> >>>>>>>>>>>
> >>>>>>>>>>> Luckily for us, there is a project that is aimed exactly at
> >>>>>>>>>>> problems
> >>>>>>>>> like
> >>>>>>>>>>> this:
> >>>>>>>>>>> https://www.testcontainers.org/
> >>>>>>>>>>>
> >>>>>>>>>>> The basic idea of Testcontainers is that you define a Docker
> >>>>>>>> container
> >>>>>>>>> in
> >>>>>>>>>>> your tests for whatever external dependencies you need.
> >>>>>>>>>>> Databases
> >>>>>>>> are a
> >>>>>>>>>>> frequent example where Testcontainers makes sense. For us,
> >>>>>>>>>>> Gremlin
> >>>>>>>>> Server
> >>>>>>>>>>> would be such a container.
> >>>>>>>>>>> Testcontainers then uses the ability of the testing framework
> >>>>>> (e.g.
> >>>>>>>>>> JUnit)
> >>>>>>>>>>> to start the Docker container for the tests and waits until
> >>>>>>>>>>> they are
> >>>>>>>>>> fully
> >>>>>>>>>>> started (how they are started can be configured for each
> >>>>>>>>>>> container differently). After the tests have completed, it
> >>>>>>>>>>> also stops the
> >>>>>>>>>> containers
> >>>>>>>>>>> again.
> >>>>>>>>>>> That way, you don't have to manage the containers manually
> >>>>>> anymore.
> >>>>>>>>>>> Everything is done in the background by the IDE / the build
> >>>>> tool.
> >>>>>>>>>>> Testcontainers was originally a Java library, but they now
> >>>>>>>>>>> also have libraries for different languages, including the
> >>>>>>>>>>> ones for which we
> >>>>>>>> have
> >>>>>>>>>>> GLVs:
> >>>>>>>>>>>
> >>>>>>>>>>> testcontainers-python:
> >>>>>>>>>>> https://github.com/testcontainers/testcontainers-python
> >>>>>>>>>>> testcontainers-dotnet
> >>>>>>>>>>> <
> >>>> https://github.com/testcontainers/testcontainers-pythontestcontainer
> >>>>>>>> s-
> >>>>>>>> dotnet
> >>>>>>>>>>> :
> >>>>>>>>>>> https://github.com/testcontainers/testcontainers-dotnet
> >>>>>>>>>>> testcontainers-node
> >>>>>>>>>>> <
> >>>> https://github.com/testcontainers/testcontainers-dotnettestcontainer
> >>>>>>>> s-
> >>>>>>>> node
> >>>>>>>>>>> :
> >>>>>>>>>>> https://github.com/testcontainers/testcontainers-node
> >>>>>>>>>>>
> >>>>>>>>>>> Testcontainers-java is the most advanced library of these of
> >>>>>>> course.
> >>>>>>>>> The
> >>>>>>>>>>> others still lack some functionality, but I guess that we
> >>>>>>>>>>> could also
> >>>>>>>>> just
> >>>>>>>>>>> contribute to those libraries if an important feature is
> >>>>>>>>>>> missing for
> >>>>>>>>> us.
> >>>>>>>>>>> I wanted to use Testcontainers for Gremlin.Net, but
> >>>>>>>>> testcontainers-dotnet
> >>>>>>>>>>> unfortunately can only use images that are available in some
> >>>>>>>> registry.
> >>>>>>>>>> So,
> >>>>>>>>>>> we would have to push a Docker Image of Gremlin Server to
> >>>>>>>>>>> DockerHub
> >>>>>>>> to
> >>>>>>>>>> use
> >>>>>>>>>>> it in our tests. That means that we could either only test
> >>>> the
> >>>>>>>>>>> GLVs
> >>>>>>>>>> against
> >>>>>>>>>>> already released versions or we could publish something like
> >>>>>>>>>>> nightly
> >>>>>>>>>> build
> >>>>>>>>>>> images of Gremlin Server.
> >>>>>>>>>>> I originally wanted to wait until testcontainers-dotnet is
> >>>>>>>>>>> able to
> >>>>>>>> use
> >>>>>>>>>>> images that are only available locally (testcontainers-java
> >>>>>>>>>>> already
> >>>>>>>> has
> >>>>>>>>>>> that capability), but now that I think more about this, I
> >>>>>>>>>>> think that
> >>>>>>>> it
> >>>>>>>>>>> makes actually more sense to use images that are available in
> >>>>>>>>>>> the
> >>>>>>>>>> registry
> >>>>>>>>>>> as every developer would otherwise have to build test images
> >>>>>>>>>>> first
> >>>>>>>>>> locally
> >>>>>>>>>>> in order to use them for tests.
> >>>>>>>>>>>
> >>>>>>>>>>> So, I suggest that you guys take a look at Testcontainers to
> >>>>>>>>>>> see
> >>>>>>>>> whether
> >>>>>>>>>>> you agree that it's a good solution to our problem and then
> >>>> we
> >>>>>>>>>>> can
> >>>>>>>> see
> >>>>>>>>>>> whether we want to publish nightly builds for the GLV tests
> >>>> or
> >>>>>>>>>>> how we
> >>>>>>>>>> want
> >>>>>>>>>>> to handle that.
> >>>>>>>>>>>
> >>>>>>>>>>> -----Ursprüngliche Nachricht-----
> >>>>>>>>>>> Von: Stephen Mallette <spmalle...@gmail.com>
> >>>>>>>>>>> Gesendet: Dienstag, 26. Februar 2019 22:24
> >>>>>>>>>>> An: dev@tinkerpop.apache.org
> >>>>>>>>>>> Betreff: docker and GLV development
> >>>>>>>>>>>
> >>>>>>>>>>> Anyone have any idea how to make it so that docker can be
> >>>>>>>>>>> useful for helping to streamline GLV development? I'd love to
> >>>>>>>>>>> be able to do
> >>>>>>>>>> something
> >>>>>>>>>>> like:
> >>>>>>>>>>>
> >>>>>>>>>>> docker/gremlin-server.sh -test
> >>>>>>>>>>>
> >>>>>>>>>>> which would start Gremlin Server with our standard test
> >>>>>>>>>>> configuration (currently built into the maven tool chain, but
> >>>>>>>>>>> I think that could be extracted without too much difficulty).
> >>>>>>>>>>> That way, we could easily
> >>>>>>>> open
> >>>>>>>>> up
> >>>>>>>>>>> whatever GLV specific IDE we wanted and run tests directly in
> >>>>>>>>>>> there,
> >>>>>>>>> use
> >>>>>>>>>>> the debugger, etc.
> >>>>>>>>>>>
> >>>>>>>>>>> Sound useful? and if so, is that something that is
> >>>>>>>>>>> easy/possible? and
> >>>>>>>>>> then
> >>>>>>>>>>> further....any volunteers with the know-how to get that setup
> >>>>>>>>>>> (i'm
> >>>>>>>>> happy
> >>>>>>>>>> to
> >>>>>>>>>>> assist however i can)?
> >>>>>>>>>>>
> >>>>>>>>>>> btw, if you have a nicer way to set up an environment for GLV
> >>>>>>>>> development
> >>>>>>>>>>> and docker is a waste of time, please clue me in. i don't
> >>>> mind
> >>>>>>>>>>> using
> >>>>>>>>> the
> >>>>>>>>>>> maven integration but i feel like i could be more efficient
> >>>>>>>>>>> with a
> >>>>>>>> more
> >>>>>>>>>>> streamlined setup.
> >>>>>>>>>>>
> >>>>>>>>>>>
>

Reply via email to