Estoy tratando de ejecutar un sitio de WordPress dentro del Contenedor Docker oficial de WordPress.
El sitio de WordPress que he creado se basa en el uso exif_read_data
para extraer metainformación de las fotos. Entiendo que PHP debe configurarse con el --with-exif
bandera para que esto funcione.
Este es el Configurar comando Sección de <?php phpinfo() ?>
de salida cuando ejecuto mi sitio desde el contenedor Docker:
'./configure' '--with-config-file-path=/usr/local/etc/php' '--with-config-file-scan-dir=/usr/local/etc/php/conf.d' '--disable-cgi' '--enable-ftp' '--enable-mbstring' '--enable-mysqlnd' '--with-curl' '--with-libedit' '--with-openssl' '--with-zlib' '--with-apxs2' 'CFLAGS=-fstack-protector-strong '-fpic' '-fpie' '-O2'' 'LDFLAGS=-Wl,-O1 '-Wl,--hash-style=both' '-pie'' 'CPPFLAGS=-fstack-protector-strong '-fpic' '-fpie' '-O2''
¿Cómo puedo reconfigurar PHP para tener habilitado el soporte EXIF? Me gustaría seguir usando el contenedor Docker oficial de WordPress porque, de lo contrario, parece funcionar muy bien.
Mi docker-compose.yml
es aquí: https://github.com/quis/quis.cc/blob/d89efebefc20f688afbd70f8d7a58e35380581e9/docker-compose.yml
Bien, lo descubrí.
La compatibilidad con EXIF se puede habilitar ejecutando el docker-php-ext-install exif
dominio. Este comando solo funciona cuando se construye el contenedor.
No puedo modificar el contenedor oficial; la forma Docker de hacer esto (que es la parte que no entendí) es construir mi propio contenedor encima del oficial. Luego, cuando construyo mi propio contenedor, puedo ejecutar el comando para habilitar la compatibilidad con EXIF. Todo lo demás se hereda del contenedor oficial de WordPress. Así que hice un archivo llamado Dockerfile
que contiene esto:
FROM wordpress:latest
RUN docker-php-ext-install exif
ENTRYPOINT ["docker-entrypoint.sh"]
CMD ["apache2-foreground"]
Luego ejecuté este comando de shell para crear una imagen a partir de este archivo:
docker build -t wordpress-exif .
Entonces es solo un caso de apuntar el archivo de composición de Docker a mi contenedor personalizado, en lugar del genérico. así que en docker-compose.yml
Cambié image: wordpress:latest
a image: wordpress-exif
.
Intenté instalar y habilitar exif como otras respuestas, pero no tuve suerte.
Finalmente, funcionó agregando el paquete.
RUN apk add --no-cache php7-exif
solía php:7.4-alpine
Pedro Drinnan
Si está utilizando PHP 7.2+, es posible que la extensión exif ya esté instalada pero deshabilitada. Agregue esta línea a Dockerfile para habilitarlo:
RUN docker-php-ext-enable exif