我刚开始使用Docker。在我的OSX开发机器上使用官方NGINX映像(使用Docker Machine作为Docker主机)我遇到了sendfile
和VirtualBox的错误,这意味着服务器无法显示我对文件所做的更改。
解决方法是使用已关闭sendfile
的已修改nginx.conf文件。 This guy's solution在Dockerfile中有一条指令,用于将自定义的conf文件复制到容器中。或者,this guy将NGINX配置映射到具有修改后的conf文件的新文件夹。
这种事情在当地运作正常。但是,如果我不想在我的云主机上进行此修改,该怎么办?在部署时我应该如何处理这个和其他差异?
答案 0 :(得分:8)
您可以通过以下方式将自定义nginx.conf
挂载到 development 中的容器中。 --volume ./nginx/nginx.conf:/etc/nginx/nginx.conf
,只需将此参数省略到 production 中的docker run
。
如果使用docker-compose,我建议的两个选项是:
对environment variable interpolation使用有限的支持,并在容器定义中的volumes
下添加以下内容:./nginx/nginx.${APP_ENV}.conf:/etc/nginx/nginx.conf