2016-03-14 125 views
3

的無效共享我有我的碼頭工人,compose.yml文件像這樣:泊塢窗 - index.html的Nginx的文件

web: 
    image: nginx:latest 
    volumes: 
    - /c/Users/marcin/docker/nginx-www/nginx/html/:/usr/share/nginx/html/ 
    ports: 
    - "80:80" 

/c/Users/marcin/docker/nginx-www/nginx/html/我創建index.html文件,內容如下:

<html> 
<head> 
</head> 
<body> 
hello index 
</body> 
</html> 

但是當我看着我的域名我看空頁,但是看着在頁面的源代碼我看到這樣的事情:

<!DOCTYPE html> 
<html> 
<head> 
<title>Welcome to nginx!</title> 

看起來Docker使用的是默認的Nginx文件,僅佔用它的一部分(可能是它的確切長度,因爲它在我的index.html文件中。與其他文件例如abc.html沒有這樣的問題(可能是因爲它在Nginx圖像中默認不存在)。我怎樣才能解決這個問題,以顯示index.html文件的正確內容?

回答

3

由於您的數量以/c/...開頭,因此我假設您使用的是Windows上的Docker Toolbox以及隨附的docker-machine工具。你遇到的是Nginx的known issue(或者Nginx使用的sendfile Linux系統調用)和Virtualbox共享文件夾。

這個問題在Vagrant documentation也提到(也使用VirtualBox的),其還配備了一個建議的解決方案,可能會爲你工作:

有一個VirtualBox的臭蟲SENDFILE這可能會導致相關損壞或不更新的文件。您應該在您運行的任何Web服務器上停用sendfile。

在Nginx的:

sendfile off; 

在Apache中:

EnableSendfile Off 

根據在bug report in the vendor bug tracker的最新評論,如果您使用的open_file_cache指令(默認禁用),您也需要關掉它:

open_file_cache off; 
+0

非常感謝。當我將它添加到nginx conf時,它無法正常工作。現在,所有文件更改都反映在Web服務器上 –