Файл с обслуживающей войной в доке-контейнере Tomcat - PullRequest
1 голос
/ 17 марта 2019

Я пытаюсь запустить свое Java-приложение в Docker-контейнере.Я использую сервер Tomcat локально, и он работает нормально.Я новичок в java / tomcat / docker, так что есть кое-что, что я мог бы очень хорошо пропустить, что-то очень простое, но я предположил, что достаточно просто указать мой локальный файл войны на /usr/local/tomcat/webapps.

Вот мой docker-compose.yml

tomcat-dev:
  image: tomcat:8.5.38
  environment:
    - TOMCAT_USERNAME=root
    - TOMCAT_PASSWORD=root
  ports:
    - "8888:8080"
  volumes:
    - /target/npmanager.war:/usr/local/tomcat/webapps/npmanager.war

mysql-dev:
  image: mysql:8.0.2
  environment:
    MYSQL_ROOT_PASSWORD: root
    MYSQL_DATABASE: npmanagercd
  volumes:
    - /mysql-data:/var/lib/mysql
  ports:
    - "3308:3306"

Я вижу файл npmanager.war в каталоге веб-приложений, но не могу получить доступ к своему приложению.Мой localhost по-прежнему показывает мне страницу tomcat вместо «Hello, World», которую я вижу, когда запускаю ее из локальной установки tomcat.

Чего-то не хватает в развертывании военных файлов на tomcat?

1 Ответ

1 голос
/ 17 марта 2019

Хорошо, наконец-то я заработал. Я хотел опубликовать этот ответ здесь, если он кому-нибудь поможет, но, честно говоря, я не уверен, что полностью его понимаю.

Мне пришлось создать отдельный Dockerfile для образа tomcat:

FROM tomcat:8.5.38
ADD ./target/npmanager.war /usr/local/tomcat/webapps/
CMD chmod +x /usr/local/tomcat/bin/catalina.sh
CMD ["catalina.sh", "run"]

А затем создайте этот образ в docker-compose.yml

version: '3'

services:

tomcat-dev:
  build: .
  environment:
    TOMCAT_USERNAME: root
    TOMCAT_PASSWORD: root
  ports:
    - "8888:8080"

mysql-dev:
  image: mysql:8.0.2
  environment:
    MYSQL_ROOT_PASSWORD: root
    MYSQL_DATABASE: npmanager
  volumes:
    - /mysql-data:/var/lib/mysql
  ports:
    - "3308:3306"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...