В Docker Container не запускается папка warfile в веб-приложениях после запуска Tomcat

Когда мы запускаем tomcat, то в webapps создается папка с файлом war, как если бы у нас был файл name.war, то папка name создается в webapps после запуска tomcat.

но когда мы развертываем файл war с помощью docker, используя dockerfile, то в контейнере docker у нас есть папка tomcat, а в веб-приложениях у нас есть файл war, и после запуска dockerfile запускается приложение tomcat get start, но в папке webapp приложения папка war-файла не создается. как у меня есть name.war в веб-приложениях в Docker-контейнере, но после запуска tomcat папка с именами в веб-приложениях отсутствовала.

поэтому, если нам нужно сделать небольшие изменения в jsp в файле war, то нам нужно выполнить полное развертывание файла war, например, остановить сборку контейнера, dockerfile, запустить dockerfile и т. д. Так что, если у нас есть эта папка warfile в веб-приложениях, мы можем изменить jsp или js без труда. так как мы можем получить папку warfile после запуска tomcat в контейнере Docker.

Чтобы построить Dockerfile:

docker build -t tomcat . 

кот это имя изображения

Чтобы запустить Dockerfile:

docker run -p 8080:8080 tomcat

Мой Dockerfile это:

FROM openjdk:7-jre

MAINTAINER shri

ENV CATALINA_HOME /usr/local/tomcat

ENV PATH $CATALINA_HOME/bin:$PATH

COPY tomcat $CATALINA_HOME

ADD  newui.war  $CATALINA_HOME/webapps

CMD $CATALINA_HOME/bin/startup.sh && tail -F $CATALINA_HOME/logs/catalina.out

EXPOSE 8080

1 ответ

Вы можете предоставить войну от хоста к контейнеру, смонтировав папку, содержащую войну на хосте.

docker run -v /.../tomcat:/usr/local/tomcat -p 8080:8080 --name tomcat tomcat

куда /.../tomcat путь к еще не существующей папке Tomcat. Теперь, когда у вас есть новый файл войны, скопируйте его в /.../tomcat каталог и просто перезапустите контейнер.

docker restart tomcat

Обратите внимание, что нет необходимости перестраивать контейнер.

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