соединить два приложения, работающие раздельно на docker-compose - PullRequest
0 голосов
/ 09 июня 2018

У меня есть приложение django с mysql (chatbot) и приложение rails с mongodb, каждое из которых запускается через docker-compose. Они оба работают по отдельности. Я хочу соединить их вместе, как мне это сделать ???

Mydocker-compose файл с рельсами

#with rails on the dockerfile
version: '3.6'
services:
  db:
    image: mongo:latest
    volumes:
      - ./tmp/db:/var/lib/mongo/data
  web:
    build: .
    command: bundle exec rails s -p 3000 -b '0.0.0.0'
    volumes:
      - .:/IMS
    ports:
      - "3000:3000"
    depends_on:
      - db
  bundle:
    image: ims_web
    volumes:
      - /bundle

Проект django:

#with django on the dockerfile
version: '3.6'
services:
  db:
    image: mysql:latest
    volumes:
      - ./tmp/db:/var/lib/mysql/data
  web:
    build: .
    command: bundle exec rails s -p 4000 -b '0.0.0.0'
    volumes:
      - .:/SDV
    ports:
      - "4000:4000"
    depends_on:
      - db
  bundle:
    image: sdv_web
    volumes:
      - /bundle

Ответы [ 2 ]

0 голосов
/ 09 июня 2018

Если эти приложения должны запускаться вместе, я бы предложил объединить здесь ваши docker-compose файлы и идентифицировать каждую службу с уникальным именем (т. Е. Не дублировать имена служб, называть их mongo-db и mysql-dbили что-то подобное - то же самое с веб-службами).

На этом этапе, пока все ваши службы совместно используют общую сеть, вы сможете взаимодействовать, используя имя службы в качестве имени хоста.Например, вы можете воспользоваться своей новой rails-web услугой с django-web через http://rails-web/.

См. Ответ Хеманта для сетевой документации Docker.

0 голосов
/ 09 июня 2018

Вам просто нужно убедиться, что контейнеры, с которыми вы хотите общаться друг с другом, находятся в одной сети.Вам необходимо создать пользовательскую сеть в ваших файлах составления Docker.

Для получения дополнительной информации вы можете обратиться к https://docs.docker.com/compose/networking/

Связь между несколькими проектами Docker-compose

...