У меня есть тестовое веб-приложение, которое я могу запустить локально на localhost: 8080. Я создаю свое приложение с помощью maven:
mvn clean install -U
Я запускаю приложение с помощью следующей команды maven:
mvn org.codehaus.mojo:tomcat-maven-plugin:run
Затем я могу нажать на localhost url: http://localhost: 8080 / pokemon / healthcheck Это простое тестовое приложение, которое я хочу докаризировать только для обучения. Я смог запустить пример python "Hello World", так что я думаю, что у меня все установлено в нужных местах. Мой Dockerfile имеет следующее:
FROM tomcat:alpine
RUN ["/bin/rm", "-fr", "/usr/local/tomcat/webapps/ROOT"]
RUN ["/bin/mkdir", "/var/log/tomcat8/"]
COPY target/pokemon.war /usr/local/tomcat/webapps/pokemon.war
Затем я останавливаю локально работающий локальный хост, я предполагаю, что мне нужно это сделать, и затем я создаю образ с помощью следующей команды:
docker build -t pokesheets .
Затем я пытаюсь запустить его с помощью этой команды:
docker run -it pokesheets:latest
Журнал выглядит хорошо для меня, я вижу сообщение в журнале, что служба запущена. Контейнер работает, я вижу это. Но я не могу добраться до http://localhost: 8080 / pokemon / healthcheck . Поэтому я попытался запустить образ docker, используя следующее:
docker run -it -p 8080:8080 pokesheets:latest
docker run -d --name pokesheets -p 8090:8090 -p 8091:8091 pokesheets:latest
docker run --rm -p 8080:8080 pokesheets:latest
docker container run -d --name pokesheets -p 8080:8080 pokesheets:latest
У меня есть подозрение, что, возможно, есть что-то очень базовое c, о котором я не знаю. Я был бы очень признателен за вклад кого-то, кто имеет некоторый опыт работы с docker и может пролить свет на эту проблему.