Выставить контейнер DNS другому контейнеру? - PullRequest
1 голос
/ 01 мая 2019

Используя Docker Compose и Traefik, я пытаюсь заставить контейнер приложения взаимодействовать с контейнером solr и наоборот в локальной среде.

В настоящее время я могу получить доступ как к приложению, так и к URL-адресу solr вбраузер просто отлично, но они не могут «видеть» или разговаривать друг с другом внутри.

Я новичок в Docker.Вот раздел моего файла составления докера с соответствующими контейнерами:

php:
    image: wodby/drupal-php:$PHP_TAG
    container_name: "${PROJECT_NAME}_php"
    environment:
      PHP_SENDMAIL_PATH: /usr/sbin/sendmail -t -i -S mailhog:1025
      DB_HOST: $DB_HOST
      DB_USER: $DB_USER
      DB_PASSWORD: $DB_PASSWORD
      DB_NAME: $DB_NAME
      DB_DRIVER: $DB_DRIVER
      PHP_FPM_USER: wodby
      PHP_FPM_GROUP: wodby
      COLUMNS: 80 
    volumes:
      - ./:/var/www/html:cached

  solr:
    image: wodby/solr:$SOLR_TAG
    container_name: "${PROJECT_NAME}_solr"
    environment:
      SOLR_DEFAULT_CONFIG_SET: $SOLR_CONFIG_SET
      SOLR_HEAP: 1024m
    labels:
      - 'traefik.backend=${PROJECT_NAME}_solr'
      - 'traefik.port=8983'
      - 'traefik.frontend.rule=Host:solr.${PROJECT_BASE_URL}'


  traefik:
    image: traefik
    container_name: "${PROJECT_NAME}_traefik"
    command: -c /dev/null --web --docker --logLevel=INFO
    ports:
      - '80:80'
      - '8983:8983'
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock

Я могу получить доступ к Solr по указанному URL, но приложение не может видеть его по тому же URL.Мне нужно быть в состоянии сделать это, чтобы он мог общаться с Solr и сканировать его и т. Д.

Есть ли способ выставить их так, чтобы они могли видеть друг друга по имени хоста?

1 Ответ

0 голосов
/ 01 мая 2019

docker-compose имеет встроенное разрешение DNS-контейнера.Вы можете expose указать конкретный порт в своем контейнере, чтобы разрешить доступ в Docker-сети, или определить port (как вы сделали для своего контейнера Traefik), чтобы открыть его как в Docker-сети, так и за ее пределами.В любом случае вы сможете получить доступ к другому контейнеру по его имени (например, php, * в данном случае solr или traefik) через открытый порт из другого контейнера.

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