Problema de almacenamiento en caché de Apache, PHP, WordPress en el contenedor Docker

2 minutos de lectura

avatar de usuario
Gezim

Estoy en OS X usando el controlador Virtualbox para Docker. usando el oficial WordPress imagen acoplable, configuro un volumen desde mi máquina local para asignarlo al contenedor

/Users/gezimhome/projects/zr/src:/var/www/html/wp-content/plugins/zr

Cuando actualizo archivos en el host, se muestran actualizados en el contenedor pero los cambios no se reflejan en el sitio web hasta unos minutos después. Sospecho que puede ser que Apache almacene en caché algo, ya que no tengo ningún complemento de almacenamiento en caché de WordPress instalado.

Actualizar: No he probado otros tipos de archivos. Los archivos PHP no se actualizan cuando cargo el sitio en el navegador (o incluso cuando uso curl).

Actualización 2: Aquí esta la .htaccess expediente. Aquí esta la información de la caja virtual docker

  • específicamente qué tipo de archivos

    – espectro de mármol

    9 de febrero de 2016 a las 1:44

  • Gracias por preguntar. Archivos PHP.

    – Gezim

    9 de febrero de 2016 a las 1:44

  • ¿Hay algún problema con las asignaciones de puertos? ¿Ha revisado su archivo .htaccess en busca de encabezados extraños?

    – espectro de mármol

    9 de febrero de 2016 a las 1:51

  • Además, ¿cuál es la configuración en el contenedor docker en cuestión? ¿Has asignado correctamente los recursos? ¿Suficiente RAM/CPU?

    – espectro de mármol

    9 de febrero de 2016 a las 1:56

  • Actualizado con más información, @MatthewRath.

    – Gezim

    9 de febrero de 2016 a las 2:16

Resulta que esto fue causado por Opcaché en PHP. Opcache se habilitó en el imagen acoplable de wordpress como sigue:

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

Entonces, creé un nuevo imagen acoplable para wordpress que deshabilita almacenamiento en caché Es esencialmente esto:

FROM wordpress:latest
RUN rm -rf /usr/local/etc/php/conf.d/opcache-recommended.ini

  • Buen hallazgo También puede simplemente mapear un archivo en blanco sobre ese como: -v ./blankopcache/opcache-recommended.ini:/usr/local/etc/php/conf.d/opcache-recommended.ini

    – día auspicioso

    24 de abril de 2016 a las 7:28


  • ¡Gracias por esto! El almacenamiento en caché no es excelente durante el desarrollo y no hay nada sobre la pila que usa la imagen oficial en línea.

    – Jason Stallings

    17 de agosto de 2016 a las 14:37

  • Wow eso es impresionante. Esto me estaba volviendo loco.

    – Damon

    22 de agosto de 2016 a las 15:48


  • También podría simplemente agregar php_flag opcache.enable Off a su WordPress .htaccess, que deshabilita el almacenamiento en caché del código de operación.

    – Ap Koponen

    5 sep 2016 a las 19:47

¿Ha sido útil esta solución?