как получить доступ к приложению localhost из контейнера в docker-compose - PullRequest
1 голос
/ 20 октября 2019

У меня есть веб-приложение, работающее вне контейнера (localhost:8090).
Как я могу получить к нему доступ из контейнера в сети docker-compose?

Я пытался следовать этот ответ, который поможет для docker.

version: '3.6'
services:
  postgres:
    image: postgres
    restart: always
    volumes:
    - db_data:/var/lib/postgresql/data
    networks:
      - host
  graphql-engine:
    image: hasura/graphql-engine:v1.0.0-beta.6
    ports:
    - "8080:8080"
    depends_on:
    - "postgres"
    restart: always
    environment:
      HASURA_GRAPHQL_AUTH_HOOK: "http://localhost:8090/verify"
volumes:
  db_data:

1 Ответ

2 голосов
/ 20 октября 2019

Добавьте network_mode: "host" к вашему graphql-engine: и удалите сопоставление портов:

  graphql-engine:
    image: hasura/graphql-engine:v1.0.0-beta.6
    depends_on:
    - "postgres"
    restart: always
    network_mode: "host"
    environment:
      HASURA_GRAPHQL_AUTH_HOOK: "http://localhost:8090/verify"

graphql-engine будет прослушивать хост-порт 8080 и сможет подключаться к localhost:8090

Чтобы убедиться, что это работает, убедитесь, что /etc/hosts файл с хоста докера находится внутри graphql-engine contianer.

Документы

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...