Отказ в соединении Docker между несколькими проектами - PullRequest
0 голосов
/ 27 июня 2018

Я настроил 2 проекта (Admin и API) и пытаюсь перейти в Docker по локальной сети.

Я могу получить доступ к запущенным веб-экземплярам на обоих без проблем, но когда администратор пытается сделать запросы Curl к API, я получаю ошибку cURL:

cURL ошибка 7: не удалось подключиться к локальному порту 8080

Это мой файл docker-compose.yml:

version: "3.1"
services:

    memcached:
      image: memcached:alpine
      container_name: project-admin-memcached

    redis:
      image: redis:alpine
      container_name: project-admin-redis

    mariadb:
      image: mariadb:10.1
      container_name: project-admin-mariadb
      working_dir: /application
      volumes:
        - ./Projects:/application
      environment:
        - MYSQL_ROOT_PASSWORD=docker
        - MYSQL_DATABASE=db_test
        - MYSQL_USER=test
        - MYSQL_PASSWORD=test
      ports:
        - "8083:3306"

# docker-compose exec webserver sh
# docker exec -it project-admin-webserver nginx -s reload
    webserver:
      image: nginx:alpine
      container_name: project-admin-webserver
      working_dir: /application
      volumes:
          - ./Projects/Api:/application/api
          - ./Projects/Admin:/application/admin
          - ./Docker/nginx:/etc/nginx/conf.d
      ports:
          - "8080:8080"
          - "8090:8090"

# docker-compose exec php-fpm bash
    php-fpm:
      build: Docker/php-fpm
      container_name: project-admin-php-fpm
      working_dir: /application
      volumes:
          - ./Projects:/application
          - ./Docker/php-fpm/php-ini-overrides.ini:/etc/php/7.2/fpm/conf.d/99-overrides.ini

Я могу получить доступ к обоим проектам из своего браузера с помощью:

http://localhost:8080/ <= API </p>

http://localhost:8090/ <= Admin </p>

Как я могу это исправить?

1 Ответ

0 голосов
/ 27 июня 2018

внутри вашей докерской сети (создавайте по умолчанию с помощью compose), вы должны использовать имя контейнера. Так что внутри контейнера вы должны использовать http://webserver:8080

...