@kosavpa

Как правильно мапить порты в Docker?

У меня есть база данных и приложение, которые описаны в файле docker-compose.yml. Они нормально стартуют, но я не могу подключиться с хост машины по localhost:8080 к своему приложению, думаю проблема в маппинге портов.

docker-compose.yml:
version: 2.15.1
services:

  api_service:
    build: .
    restart: always
    ports:
      - "8080:8080"    
    network_mode: host
    depends_on:
      - mysql_db

  mysql_db:
    image: mysql:8.0
    restart: always
    ports:
      - "3307:3306"
    environment:
      MYSQL_DATABASE: fitness_blog
      MYSQL_USER: fitness_blog_admin
      MYSQL_PASSWORD: flvbygfcc
      MYSQL_ROOT_PASSWORD: root


dockerfile:
FROM openjdk:18-jdk-alpine3.14
COPY FBP.jar /FBP.jar
EXPOSE 8080/tcp
ENV "DataSource.driverClassName"="com.mysql.cj.jdbc.Driver"
ENV "DataSource.password"="flvbygfcc"
ENV "DataSource.url"="jdbc:mysql://localhost:3307/fitness_blog?allowPublicKeyRetrieval=true&useUnicode=true&serverTimezone=UTC&useSSL=false&verifyServerCertificate=false"
ENV "DataSource.username"="fitness_blog_admin"
CMD ["java", "-jar", "/FBP.jar"]
  • Вопрос задан
  • 687 просмотров
Решения вопроса 1
akelsey
@akelsey
подключаться нужно на mysql_db (не локалхост) и на порт 3306:
jdbc:mysql://mysql_db:3306/...
либо на ip адрес хостовой машинки и порт 3307:
jdbc:mysql://192.168.x.x:3307/...
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы