Не удается получить доступ к приложению весенней загрузки, работающему внутри контейнера docker с локального хоста - PullRequest
0 голосов
/ 27 апреля 2020

Я пару часов бился над этим вопросом. У меня есть следующие настройки:

Dockerfile

FROM openjdk:8-jdk-alpine
ARG JAR_FILE=target/ROOT.jar
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java","-jar","app.jar","--spring.profiles.active=dev"]
EXPOSE 8080

docker -compose.yml

version: '3'
services:
  app:
      container_name: app
      build:
         context: .
         dockerfile: Dockerfile
      restart: always
      links:
        - mysql-db
      depends_on:
        - mysql-db
      ports:
        - 8080:8080
      expose:
        - 8080
      networks:
        - spring-network
  mysql-db:
      restart: always
      container_name: mysql_db
      image: "mysql:8.0.19" 
      ports:
        - 3306:3306
      networks:
        - spring-network
      environment:
         MYSQL_ROOT_PASSWORD: 'password'
         MYSQL_DATABASE: 'db'
         MYSQL_USER: 'db-user'
         MYSQL_PASSWORD: 'password'
      volumes:
        - mysql-db:/var/lib/mysql
      command: --innodb-use-native-aio=0
      security_opt:
        - seccomp:unconfined
volumes:
  mysql-db:
networks:
    spring-network:
        driver: bridge

, когда я запускаю приложение, используя docker-compose up, оно работает нормально внутри контейнера, но когда я нажал localhost: 8080 в браузере, я получил

localhost неожиданно закрыл соединение

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

  • приложение весенней загрузки, работающее через порт 8080
  • docker версия 19.03.8

Ответы [ 2 ]

0 голосов
/ 29 апреля 2020

Через несколько дней я понял, в чем проблема. Я использовал старый файл JAR (который предоставляет приложение на порт 80: /), все, что я сделал, это сгенерировал новую сборку, которая отображает приложение на 8080 mvn clean install, затем собрал образ docker-compose build, и теперь все отлично работает

0 голосов
/ 27 апреля 2020

Удалить экспозицию - это для внутреннего использования между контейнерами

Документация для Экспонирование

Редактировать: У вас также есть сеть с двойным доступом, и вы можете обмениваться данными только между контейнерами в той же мостовой сети, как по умолчанию.

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

Или прочитать о переадресации портов здесь

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