Что такое сервис URL из одного контейнера в другой? - PullRequest
0 голосов
/ 17 января 2019

У меня есть приложение в c # 'web_dotnet' в одном контейнере, которое загружает данные из службы php 'web_php' во второй контейнер. Но что такое URL для службы php? Url 'http://web_php:80' из службы c # не работает. Это мой docker-compose.yml:

version: '3.5'

services:
   web_php:
     image: php:7.2.2-apache
     container_name: my_php_container
     volumes:
      - ./php/:/var/www/html/
     ports:
       - 3000:80
     networks:
       - mynet

   web_dotnet:
     build: .
     container_name: my_dotnet_container
     ports:
       - 2000:80
     networks:
       - mynet

networks:
   mynet:
     name: xyz_net
     driver: bridge

1 Ответ

0 голосов
/ 17 января 2019

Во-первых, вы можете упростить ваш файл, удалив ненужное сетевое объявление и разоблачение портов. docker-compose создает пользовательскую мостовую сеть по умолчанию для вас и связывает с ней все сервисы - нет необходимости делать это вручную. Также внутри сети все порты автоматически предоставляются сервисам.

Во-вторых, удалить container_name. Вы путаете себя. Службы получают имена своих хостов, равные именам служб по умолчанию.

version: '3.5'

services:
   web_php:
     image: php:7.2.2-apache
     volumes:
      - ./php/:/var/www/html/

   web_dotnet:
     build: .

Теперь, после того, как все ненужные вещи убраны, просто позвоните web_php:80 с web_dotnet.

После этого, если вы хотите получить доступ к web_dotnet ** извне ** docker-compose, добавьте директиву ports, чтобы сделать ее видимой с хоста.

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