Отказ в соединении между контейнерами - PullRequest
1 голос
/ 14 апреля 2019

Я пытался связать контейнер с приложением весенней загрузки 2 с контейнером под управлением Монго, но получаю отказано в соединении

docker-compose файл, содержащий контейнер для mongo (позже мы добавим еще один контейнер для весенней загрузки)

version: '3.1'

services:
  mongo:
    image: mongo
    container_name: springboot-mongo
    ports:
      - 27017:27017
    volumes:
      - $HOME/data/springboot-mongo-data:/data/db
      - $HOME/data/springboot-mongo-bkp:/data/bkp
    restart: always

Dockerfile для весенней загрузки

FROM openjdk:11
RUN apt-get update && apt-get install bash
RUN mkdir -p /opt/app
ENV PROJECT_HOME /opt/app
COPY build/libs/recipe-book.jar $PROJECT_HOME/recipe-book.jar
WORKDIR $PROJECT_HOME
CMD ["java", "-Dspring.data.mongodb.uri=mongodb://springboot-mongo:27017/recipes", "-jar","./recipe-book.jar"]

я пробовал разные способы отправки командной строки mongo uri: с localhost вместо springboot-mongo, я также пытался, как это описано здесь https://www.baeldung.com/spring-boot-command-line-arguments, более конкретно -Dspring-boot.run.arguments=--spring.data.mongodb.uri=mongodb://springboot-mongo:27017/recipes. Каждый раз, как кажется, ударил соединение отказано.

Как я могу сделать пружинный контейнер подключенным к монго?

Спасибо

Обновление, я также попытался добавить второй контейнер в файл docker-compose, как таковой

version: '3.1'

services:
  springboot:
    build: .
    restart: always
    container_name: springboot
    ports:
      - 8182:8080
    working_dir: /opt/app
    depends_on:
      - mongo

  mongo:
    image: mongo
    container_name: springboot-mongo
    ports:
      - 27017:27017
    volumes:
      - $HOME/data/springboot-mongo-data:/data/db
      - $HOME/data/springboot-mongo-bkp:/data/bkp
    restart: always

обновление 2:

Мне удалось так частично решить проблему, сначала собрав изображение локально на моем компьютере, а затем используя созданное изображение внутри файла docker-compose, и имея -Dspring.data.mongodb.uri=mongodb://springboot-mongo:27017/recipes в качестве параметра, но все же не повезло, что оно было построено непосредственно в docker-compose file

1 Ответ

1 голос
/ 14 апреля 2019

если вы хотите, чтобы контейнеры могли обмениваться данными между ними, вам нужно добавить их в одну и ту же сеть докеров,

обновите файл docker-compose.yml следующим образом:

version: '3.1'
services:
  springboot:
    build: .
    restart: always
    container_name: springboot
    ports:
      - 8182:8080
    working_dir: /opt/app
    depends_on:
      - mongo
    networks:
      - local

  mongo:
    image: mongo
    container_name: springboot-mongo
    ports:
      - 27017:27017
    volumes:
      - $HOME/data/springboot-mongo-data:/data/db
      - $HOME/data/springboot-mongo-bkp:/data/bkp
    restart: always
    networks:
      - local
networks:
  local:
    driver: bridge
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...