2016-11-04 33 views
1

我有搬運工人,compose.yml的內容:我的本地機器上碼頭工人與一個PHP的兩個獨立的PHP服務容器

nginx: 
build: ./nginx/ 
ports: 
    - 80:80 
links: 
    - php 
volumes: 
    - ./code:/var/www/ 
    - ./nginx/site.local.conf:/etc/nginx/conf.d/site.local.conf 
    - ./nginx/api.local.conf:/etc/nginx/conf.d/api.local.conf 
php: 
    build: ./php/ 
    expose: 
     - 9000 
    volumes: 
     - ./code/cms:/var/www/site 
     - ./code/www:/var/www/api 

我能得到的所有主機分離site.local & api.local

,但我有一個問題,卻無法解決它:

有從site.local到api.local PHP請求,所以我得到的錯誤是這樣的:

cURL錯誤6:無法解析主機:api.local

有人可以幫我嗎?謝謝。

+0

我認爲你有'nginx'容器的縮進問題,不應該'''建立','ports','links'和'volumes'在'nginx:'下面縮進,就像你用'php :'集裝箱? – Marcs

+0

@Marcs我認爲問題不在於它,因爲是一些標準設計** nginx + php-fpm ***。我可以從** nginx **容器ping代碼爲site.local和api.local,並且代理到php,因爲鏈接,但是我無法從** php **容器中ping任何域。 – kRicha

+0

您的docker-compose.yml粘貼中沒有任何東西可以解釋api.local和site.local定義在哪裏解決。這是否爲您的整個本地網絡創建了一些DNS設置? Dockerfile中有沒有與解決這些問題有關的nginx或php的東西? – programmerq

回答

2

我對我的問題有一個答案!

version: "2" 

networks: 
    lan_0: 
     driver: bridge 
     ipam: 
      driver: default 
      config: 
       - subnet: 172.19.0.0/24 
        gateway: 172.19.0.21 

services: 
    nginx: 
     build: ./nginx/ 
     ports: 
      - 80:80 
      - 443:443 
     links: 
      - php 
     volumes: 
      - ./code:/var/www/ 
     networks: 
      lan_0: 
       ipv4_address: 172.19.0.22 
    php: 
     build: ./php/ 
     expose: 
      - 9000 
     volumes: 
      - ./code:/var/www 
     extra_hosts: 
      - "api.local:172.19.0.22" 
      - "site.local:172.19.0.22" 
     networks: 
      lan_0: 
       ipv4_address: 172.19.0.23 

這就是例子,如何在一個php容器中通信兩個web應用程序。

相關問題