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 <[email protected]>
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 <[email protected]>
> 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;"
>
>