我在OS X上使用适用于docker的Virtualbox驱动程序。使用官方的WordPress docker镜像,我从本地计算机上设置了一个卷以映射到容器
/Users/gezimhome/projects/zr/src:/var/www/html/wp-content/plugins/zr
当我在主机中更新文件时,它们在容器中显示为已更新,但是更改直到几分钟后才反射(reflect)在网站上。我怀疑这可能是Apache缓存的东西,因为我没有安装任何WordPress缓存插件。

更新:我没有尝试过其他类型的文件。当我在浏览器中加载站点时,PHP文件没有更新(甚至使用curl)。

更新2 :这是.htaccess文件。
这是docker virtualbox info

最佳答案

事实证明,这是由PHP中的opcache引起的。在wordpress docker image中启用了操作缓存,如下所示:

RUN { \
        echo 'opcache.memory_consumption=128'; \
        echo 'opcache.interned_strings_buffer=8'; \
        echo 'opcache.max_accelerated_files=4000'; \
        echo 'opcache.revalidate_freq=60'; \
        echo 'opcache.fast_shutdown=1'; \
        echo 'opcache.enable_cli=1'; \
    } > /usr/local/etc/php/conf.d/opcache-recommended.ini

因此,我创建了一个新的docker image for wordpress that disables缓存。本质上是这样的:
FROM wordpress:latest
RUN rm -rf /usr/local/etc/php/conf.d/opcache-recommended.ini

10-04 21:57
查看更多