2015-09-29 43 views
2

我用泊塢爲我的PHP開發環境拒絕了,我建立了我的圖片與碼頭工人撰寫這樣:用虛擬本地主機連接在泊塢開發環境

myapp: 
    build: myapp/ 
    volumes: 
     - ./myapp:/var/www/myapp 

php: 
    build: php-fpm/ 
    expose: 
     - 9000:9000 
    links: 
     - elasticsearch 
    volumes_from: 
     - myapp 
    extra_hosts: 
     # Maybe the problem is related to this line 
     - "myapp.localhost.com:127.0.0.1" 

nginx: 
    build: nginx/ 
    ports: 
     - 80:80 
    links: 
     - php 
    volumes_from: 
     - myapp 

elasticsearch: 
    image: elasticsearch:1.7 
    ports: 
     - 9200:9200 

Nginx的配置(在其泊塢窗文件)主機名爲myapp.localhost.comserver_name參數),並指向/var/www/myapp文件夾。

這一切工作正常。

但這裏是我的問題:我的web應用程序是通過myapp.localhost.com URL與捲曲自稱(在PHP代碼),它可以通過運行此命令可以更容易地重現:

docker-compose run php curl http://myapp.localhost.com 

捲曲響應在下面的:

捲曲錯誤7:未能連接到myapp.localhost.com端口80:連接被拒絕

你有什麼想法可以調用應用程序URL嗎?有沒有我在我的docker-compose.yml文件中錯過的東西?

+0

從我在網上看到的,我應該在'docker-compose.yml'的'php'條目中添加' - 「nginx:myapp.localhost.com」'到鏈接列表中。 。但是在運行docker-compose時會導致所謂的「循環導入」錯誤。也許https://github.com/docker/compose/pull/1676將解決Docker Compose 1.5中的問題。 無論如何,我願意接受任何其他解決方案! –

回答

1

幾個月後,我回來後的(很簡單),回答我的問題:

  • 刪除在Nginx的主機配置
  • server_name條目docker-compose.yml文件中刪除extra_hosts條目(沒必要,但它也沒用)

中只需調用Nginx的容器名稱服務器作爲主機(nginx這裏):

docker-compose exec php curl http://nginx 
+1

感謝您的跟進。它非常幫助我。 – clone45