You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker构建镜像时未同步本地更新文件,--no-cache等操作均失效

解决方案

  • 第一步:确认构建上下文路径正确
    执行docker build前先在当前命令行窗口执行ls ./html/(Windows环境执行dir .\html\),确认你修改的文件确实位于当前工作目录的html文件夹下,且文件内容为更新后的版本,避免修改了其他路径下的文件导致构建时引用了旧文件。

  • 第二步:确认Dockerfile指令规范
    Dockerfile指令官方要求大写,将你现有Dockerfile中的小写copy改为大写COPY,避免部分旧版Docker引擎对小写指令识别异常:

    FROM nginx:1.15.8-alpine
    # config
    COPY ./nginx.conf /etc/nginx/nginx.conf
    COPY ./html/ /usr/share/nginx/html/
    
  • 第三步:排查.dockerignore规则
    检查当前构建目录下的.dockerignore文件,确认是否存在忽略html/目录或你修改的对应文件的规则,若有则删除对应规则后重新构建。

  • 第四步:确认是否为缓存导致的假象
    很多时候文件已经成功更新到容器内,只是nginx或浏览器的缓存导致你看到的是旧版本,可通过以下方式验证:

    1. 启动容器后执行docker ps获取运行容器的ID,随后执行以下命令查看容器内对应文件的内容:
      docker exec -it <你的容器ID> cat /usr/share/nginx/html/你修改的文件名
      
    2. 如果容器内文件已经是更新后的版本,说明是缓存问题:
      • 浏览器端按Ctrl+Shift+R(Mac系统按Cmd+Shift+R)强制刷新忽略缓存访问
      • 测试环境可修改nginx配置,添加静态资源禁用缓存规则,避免后续重复出现该问题:
        location ~* \.(html|js|css|json|png|jpg)$ {
            expires -1;
            add_header Cache-Control "no-store, no-cache, must-revalidate, proxy-revalidate";
        }
        

内容的提问来源于stack exchange,提问作者Jobasha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 14:12:02