运行 Nginx 使用 Docker 时如何禁用 Nginx 缓存

How to disable Nginx caching when running Nginx using Docker

我使用官方的nginx docker镜像(https://registry.hub.docker.com/_/nginx/)。当我修改 Index.html 时,我没有看到我的更改。在 nginx.conf 中设置 sendfile off 没有帮助。

只有重建我的图像才能看到变化。

这是我的 Dockerfile:

FROM nginx
COPY . /usr/share/nginx/html
COPY nginx/nginx.conf /etc/nginx/nginx.conf
COPY nginx/default.conf /etc/nginx/conf.d/default.conf

这就是我用来构建和 运行 它的命令:

docker build -t some-nginx .
docker run --name app1 -p 80:80 -v $(pwd):/user/share/nginx/html -d some-nginx

谢谢

这不是缓存。一旦文件被复制到容器镜像中(使用 COPY 指令),从主机修改它不会有任何效果 - 它是一个不同的文件。

您已尝试通过使用 docker run-v 参数从主机绑定安装卷来覆盖文件。这将起作用 - 你现在将在主机和容器上使用相同的文件,除非你输入错误 - 它应该是 /usr 而不是 /user.

只需要修改nginx.conf文件中的sendfile关闭即可。