Выпуск работает Docker Изображение - PullRequest
0 голосов
/ 09 января 2020

У меня есть тестовое веб-приложение, которое я могу запустить локально на 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 и может пролить свет на эту проблему.

1 Ответ

1 голос
/ 09 января 2020

Вы фактически не запускаете сервер внутри контейнера Docker.

Вы создаете его и копируете в него файлы, но не запускаете сервер.

Используйте инструкцию ENTRYPOINT .

Редактировать:

Официальный репозиторий Tomcat Docker В репозитории изображений указано использование инструкции CMD а также использует порт :8888.

CMD ["catalina.sh", "run"]

Редактировать 2:

Сборочный образ: docker build -t pokesheets .

FROM tomcat:alpine

RUN ["/bin/rm", "-fr", "/usr/local/tomcat/webapps/ROOT"]
RUN ["/bin/mkdir", "/var/log/tomcat8/"]
ADD target/pokemon.war /usr/local/tomcat/webapps/pokemon.war

EXPOSE 8080

CMD ["catalina.sh", "run"]

Запустить контейнер

docker run -it -p 80:8080 pokesheets:latest

Визит http://localhost:8080/pokemon/healthcheck

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...