簡體   English   中英

連接在docker-compose上分別運行的兩個應用程序

[英]connect two application running separatly on docker-compose

我有一個帶有mysql(chatbot)的django應用程序和一個帶有mongodb的rails應用程序,每個應用程序都在docker-compose上運行。它們都單獨運行,我想將它們連接在一起,我該怎么實現?

我的帶有docker的docker-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 prroject:

#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

您只需要確保要互相交談的容器在同一網絡上即可。 您需要在docker compose文件中創建一個自定義網絡。

有關更多參考,您可以參考https://docs.docker.com/compose/networking/

多個docker-compose項目之間的通信

如果打算將這些應用程序一起運行,我建議在這里合並您的docker-compose文件,並用唯一的名稱標識每個服務(即,不要重復使用服務名稱,將它們稱為mongo-db和mysql-db之類的東西- -與網絡服務相同)。

屆時,只要您所有的服務共享一個公共網絡,就可以使用服務名作為主機名進行相互通信。 例如,您可以通過http://rails-web/django-web新的rails-web服務。

有關Docker網絡文檔,請參閱Hemant的答案。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM