Не удается увидеть веб-приложение плагина Java Maven Tomcat в веб-браузере

Я хочу собрать и запустить свое веб-приложение на Java Maven в Docker-контейнере. Я попытался с помощью следующей команды:

 docker run -it --name my_project -v "$PWD":/usr/src/my_project -w /usr/src/my_project maven:3.5.0-jdk-8 mvn clean install tomcat7:run

Он правильно копирует ресурсы, запускает maven clean install (успешная сборка) и запускается с помощью tomcat7-maven-plugin, который включен в мой pom.xml.

Все работает отлично, и журналы действительно похожи на сборку и запуск локально на моей машине с Windows:

Запустить информацию

К сожалению, в веб-браузере есть информация "Отказ в соединении".

Что может вызвать проблему?: - мое приложение ориентировано на Windows и не может работать в Linux? - приложение полностью работает и работает, но что-то не так с настройкой прокси или порт не настроен?

Как я могу продолжить - исследовать журналы? Попробуйте построить на Windows Docker контейнер?

PS Я проверяю IP контейнера с приложением Kitematic для Windows Docker.

1 ответ

Возможно три вопроса. После того, как вы использовали -w вместо -v

 docker run -it --name my_project -v "$PWD":/usr/src/my_project -w /usr/src/my_project maven:3.5.0-jdk-8 mvn clean install tomcat7:run

Во время публикации я предположил, что это опечатка. Далее вы не опубликовали порт на своей машине

 docker run -p 9998:9998 -it --name my_project -v "$PWD":/usr/src/my_project -w /usr/src/my_project maven:3.5.0-jdk-8 mvn clean install tomcat7:run

Это будет карта порта 9998 (справа) от вашего контейнера до порта 9998 на вашем местном хосте.

Третий и последний, ваш журнал INFO говорит о прослушивании localhost:9998, Это не хорошо. Потому что это означает, что ваша война зависит от трафика, генерируемого только внутри контейнера, а не снаружи контейнера. Вам нужно настроить свою войну так, чтобы она слушала все интерфейсы внутри контейнера, и bind должен быть 0.0.0.0:9998

Другие вопросы по тегам