Thanks for your helpful replies, guys.

@Edward: you were correct. I forgot to export 5005 port in YAML. After
exporting this port, I am at least able to see the process with following
command (I was not able to see it before):

gnandre@gnandre-deb9-64:/sandbox/gnandre/mw-ruby-development-server$ sudo
lsof -i tcp:5005
COMMAND      PID USER   FD   TYPE   DEVICE SIZE/OFF NODE NAME
docker-pr 181928 root    4u  IPv6 91702195      0t0  TCP *:5005 (LISTEN)

However, even after this, it is not working. i.e. I am not able to connect
to the debug session from IntelliJ. It still throws connection refused
error as it did previously.

Here is the full Solr setting now:

  solr:
    build:
      context: ${DEV_ENV_ROOT}/solr/docker
      dockerfile: Dockerfile.development
      args:
        DEV_ENV_USER_ID: ${DEV_ENV_USER_ID}
    networks:
      - default
    ports:
      - "8983:8983"
      - "9983:9983"
      - "5005:5005"
    environment:
      - SOLR_HEAP=2048m
    command: >
             bash -c "solr start -a
"-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005" -cloud
-s /var/lib/solr -t /var/data/solr; set -x; export; wait-for-solr.sh;

             solr create -c data_core -d /var/lib/solr/data_core;
             tail -f /var/log/solr/solr.log"

@Martijn: As you can see in the setting above, the tail command does not
let container exit. I had to start Solr in background otherwise I cannot
run command to create collection after it if Solr is started in foreground.

I tried both the settings that you have given above. I see the ' Listening
for transport dt_socket at address: 5005' statement in the startup logs. I
can also see that there is a process running on this port.
gnandre@gnandre-deb9-64:/sandbox/gnandre/mw-ruby-development-server$ sudo
lsof -i tcp:5005
COMMAND      PID USER   FD   TYPE   DEVICE SIZE/OFF NODE NAME
docker-pr 181928 root    4u  IPv6 91702195      0t0  TCP *:5005 (LISTEN)

but if I try to connect it with telnet command directly from the Debian
machine then it fails
gnandre@gnandre-deb9-64:/sandbox/gnandre/mw-ruby-development-server$ telnet
localhost 5005
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
Connection closed by foreign host.

if I use the Debian machine name on which this docker instance is running,
it still fails but with different error:
gnandre@gnandre-deb9-64:/sandbox/gnandre/mw-ruby-development-server$ sudo
lsof -i tcp:5005
(failed reverse-i-search)`telent ': ^Clnet localhost 5005
gnandre@gnandre-deb9-64:/sandbox/gnandre/mw-ruby-development-server$ telnet
gnandre-deb9-64 5005
Trying 172.28.155.62...
telnet: Unable to connect to remote host: Connection refused

I used telnet command to test the debug port. I also tried to connect the
debugging session from IntelliJ and it fails with the same issue. i.e.
Connection refused. This is was the same error that I was getting in the
first place.

Any more suggestions?



On Sat, Jan 11, 2020 at 10:15 AM Martijn Koster <mak-luc...@greenhills.co.uk>
wrote:

> I think you may have a quoting issue there: remove those inner ones. Not
> that it should matter in this instance.
> I’m not sure why you’re using “start”, which will run solr in the
> background, or what you expect to happen after the wait-for-solr.sh — if it
> all worked as you expected that would wait for solr, then exit, destroying
> the container.
>
> This seems to work:
>
>         version: '3.3'
>         services:
>           solr1:
>             container_name: solr1
>             image: solr:8.4
>             ports:
>              - "8981:8983”
>              - "5005:5005”
>             command: bash -c "solr-fg -a
> -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005”
>
> Or even just:
>
>         version: ‘3.3'
>         services:
>           solr1:
>             container_name: solr1
>             image: solr:8.4
>             ports:
>              - "8981:8983”
>              - "5005:5005”
>             environment:
>              -
> "SOLR_OPTS=-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005”
>
> The thing to look for in the logs is:   solr1    | Listening for transport
> dt_socket at address: 5005
>
> BTW, when looking at these sort of subtleties, it’s always useful to exec
> into the container, and run `tr '\000' '\n' </proc/10/cmdline` (where 10 is
> the pid of java in your container, doublecheck with `ps -eflwww`), to make
> sure it’s running with the arguments you expect it to.
>
> — Martijn
>
> > On 10 Jan 2020, at 23:42, Arnold Bronley <arnoldbron...@gmail.com>
> wrote:
> >
> >             bash -c "solr start -a
> > "-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005"
> -cloud
> > -s /var/lib/solr -t /var/data/solr; set -x; export; wait-for-solr.sh;"
>
>

Reply via email to