как получить два док-контейнера, один из которых работает с флягой и сервисом golang, чтобы общаться друг с другом? - PullRequest
0 голосов
/ 02 марта 2019

У меня есть служба фляги, работающая через docker-compose на порту 5000. Точно так же у меня есть другая служба go, работающая через другую docker-compose на порту 8000. Службе Golang необходимо вызвать API-интерфейс колбы, работающий на 5000. Ястолкнувшись с проблемой при получении обслуживания Go, чтобы вызвать службу колбы.Я попытался добавить Docker-сеть, но не удалось.Каковы плюсы и минусы запуска обоих сервисов через разные docker-compose по сравнению с одиночным docker-compose?(Мне не удалось успешно запустить их в одном docker-compose, кстати). Docker PS запускает оба контейнера .

Компоновка Flask Docker

version: '3'  # version of compose format

services:
  bidders:
    build:
      dockerfile: Dockerfile
      context: .
    volumes:
      - .:/usr/src/bidders # mount point
    ports:
      - 5000:5000  # host:container

Go Docker Compose

version: '3'

services:
  auctions:
    container_name: auctions
    build: .
    command: go run main.go
    volumes:
      - .:/go/src/auctions
    working_dir: /go/src/auctions
    ports:  
      - "8000:8000"

Третий Nwtwork Docker-compose.yml

#docker-compose.yml
version: '3'

networks:
    - second_network

networks:
  second_network:
    driver: bridge

1 Ответ

0 голосов
/ 02 марта 2019

С одним docker-compose.yml будет проще сделать обе услуги внутри одной сети.Так что же было проблемой, которую вы получили, делая это?Также убедитесь, что ваше колба и приложение go привязаны к 0.0.0.0 из самого кода, а не к 127.0.0.1, чтобы вы могли связаться с ними снаружи контейнера.

С двумя docker-compose.yml у вас есть два варианта:

  • Создайте сеть через один из этих файлов и создайте другой контейнер, который в другом файле присоединяется к этой внешней сети.

  • Создайте сетьиспользуя docker network create и определите внешнюю сеть в обоих файлах для ваших контейнеров

Есть похожий вопрос, который вы можете проверить, ответив его здесь с примером включенным

Вы можете проверить Сеть в Compose для получения дополнительной информации

...