Habilite la compatibilidad con EXIF ​​al ejecutar el contenedor Docker de WordPress

2 minutos de lectura

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

Avatar de usuario de Peter Drinnan
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 

  • docker-php-ext-install ya invoca docker-php-ext-enable. fuente

    – Marten

    3 de noviembre a las 11:12

¿Ha sido útil esta solución?