Connectez docker-composer à la base de données externe

J'ai un set de 4 conteneurs qui ont besoin de se parler les uns les autres, et deux de ceux qui ont besoin de se connecter à une base de données externe.

J'ai commencé à travailler avec le compositeur et lier le tout ensemble.

Les conteneurs sont en mesure de parler les uns avec les autres, sans beaucoup de problèmes, mais ils ne peuvent pas se connecter à la base de données externe.

La base de données externe est en place et fonctionne, et je peux facilement s'y connecter via le shell.

Le docker-composition de fichier ressemble à ceci:

version: "3"

services:  

  bridge:
    # version => 2.1.4
    build: ./lora-gateway-bridge
    ports:
      - "1680/udp:1700/udp"
    links:
      - emqtt
      - redis
    environment:
      - MQTT_SERVER=tcp://emqtt:1883
    networks:
      - external
    restart: unless-stopped

  loraserver:
    # version => 0.16.1
    build: ./loraserver
    links:
      - redis
      - emqtt
      - lora-app-server
    environment:
      - NET_ID=010203
      - REDIS_URL=redis://redis:6379
      - DB_AUTOMIGRATE=true
      - POSTGRES_DSN=${SQL_STRING} ###<- connection string
      - BAND=EU_863_870
    ports:
      - "8000:8000"
    restart: unless-stopped

  lora-app-server:
    build: ./lora-app-server 
    # version => 0.8.0
    links:
      - emqtt
      - redis
    volumes:
      - "/opt/lora-app-server/certs:/opt/lora-app-server/certs"
    environment:
      - POSTGRES_DSN=${SQL_STRING} ### <- connection string
      - REDIS_URL=redis://redis:6379
      - NS_SERVER=loraserver:8000
      - MQTT_SERVER=tcp://emqtt:1883
    ports:
      - "8001:8001"
      - "443:8080"
    restart: unless-stopped

  redis:
    image: redis:3.0.7-alpine
    restart: unless-stopped

  emqtt:
    image: erlio/docker-vernemq:latest
    volumes:
      - ./emqttd/usernames/vmq.passwd:/etc/vernemq/vmq.passwd
    ports:
      - "1883:1883"
      - "18083:18083"
    restart: unless-stopped

Il semble qu'ils sont incapables de trouver l'hôte sur lequel la base de données est en cours d'exécution.

Tous les exemples que je vois parler d'une base de données à l'intérieur du menu fixe-composer, mais je n'ai pas bien saisi comment connecter le conteneur à un service externe.

Comment vous êtes-vous avec la réponse ci-dessous, Siscia? Il semble assez importante.
qu'en est extra_hosts comme indiqué dans le docs.docker.com/compose/compose-file/#extra_hosts

OriginalL'auteur Siscia | 2017-05-03