2016-03-14 122 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服务器上 –