¿Cómo componer la última imagen oficial de wordpress en la versión 8 de php?

4 minutos de lectura

estoy usando imagen oficial de wordpress de los estibadores para implementar entornos locales de wordpress usando Componer ventana acoplable.

despues de correr docker-compose up -d y luego corriendo phpinfo() función en mi código de tema local, la versión actual de php en ejecución es 7.4

ingrese la descripción de la imagen aquí

Pero si miras el repositorio oficial de imágenes de wordpress en githubpuede ver que la última versión de wordpress es compatible con la versión php 8.0…

ingrese la descripción de la imagen aquí

Mi pregunta es, ¿cómo puedo implementar mi imagen acoplable de wordpress usando php8.0?

Aquí está mi docker-compose.yml archivo…

version: '3.7'

networks:
  wordpress:
    ipam:
      config:
        - subnet: 172.25.0.0/16

services:

  # here is our mysql database
  db:
    image: mysql:5.7
    volumes:
     - ./db:/var/lib/mysql:delegated
     #- ./docker/db-dumps:/docker-entrypoint-initdb.d:delegated
    ports:
      - "3306:3306"
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: somewordpress
      MYSQL_DATABASE: wordpress
      MYSQL_USER: wordpress
      MYSQL_PASSWORD: wordpress
    networks:
      - wordpress

  # here is our wordpress server
  wordpress:
    depends_on:
      - db
    image: wordpress:latest
    volumes:
      # our persistent local data re routing
      - ./themes/example:/var/www/html/wp-content/themes/example:delegated
      - ./plugins:/var/www/html/wp-content/plugins
      - ./mu-plugins:/var/www/html/wp-content/mu-plugins
      - ./uploads:/var/www/html/wp-content/uploads
      - ./uploads.ini:/usr/local/etc/php/conf.d/uploads.ini
    ports:
      - "80:80"
    restart: always
    networks:
      - wordpress
    environment:

      # our local dev environment
      WORDPRESS_DEBUG: 1

      # docker wp-config settings
      WORDPRESS_DB_HOST: db:3306
      WORDPRESS_DB_USER: wordpress
      WORDPRESS_DB_PASSWORD: wordpress
      WORDPRESS_DB_NAME: wordpress
      WORDPRESS_AUTH_KEY: 5f6ede1b94d25a2294e29eeba929a8c80a5ac0fb
      WORDPRESS_SECURE_KEY: 5f6ede1b94d25a2294e29eeba929a8c80a5ac0fb
      WORDPRESS_LOGGED_IN_KEY: 5f6ede1b94d25a2294e29eeba929a8c80a5ac0fb
      WORDPRESS_NONCE_KEY: 5f6ede1b94d25a2294e29eeba929a8c80a5ac0fb
      WORDPRESS_SECURE_AUTH_SALT: 5f6ede1b94d25a2294e29eeba929a8c80a5ac0fb
      WORDPRESS_LOGGED_IN_SALT: 5f6ede1b94d25a2294e29eeba929a8c80a5ac0fb
      WORDPRESS_NONCE_SALT: 5f6ede1b94d25a2294e29eeba929a8c80a5ac0fb
      WORDPRESS_CONFIG_EXTRA: |

        /* development parameters */
        define('WP_CACHE', false);
        define('ENVIRONMENT', 'local');

        /* configure mail server */
        define('WORDPRESS_SMTP_AUTH', false);
        define('WORDPRESS_SMTP_SECURE', '');
        define('WORDPRESS_SMTP_HOST', 'mailhog');
        define('WORDPRESS_SMTP_PORT', '1025');
        define('WORDPRESS_SMTP_USERNAME', null);
        define('WORDPRESS_SMTP_PASSWORD', null);
        define('WORDPRESS_SMTP_FROM', 'no-reply@example.com');
        define('WORDPRESS_SMTP_FROM_NAME', 'Example');

        if(!defined('WP_HOME')) {
          /* force our home url */
          define('WP_HOME', 'http://localhost');
          define('WP_SITEURL', WP_HOME);
        }

  # here is our mailhog server
  mailhog:
    image: mailhog/mailhog:latest
    ports:
      - "8025:8025"
    networks:
      - wordpress

¿Cómo defino qué versión de php usar desde el wordpress:último imagen, así que cada vez que docker-compose up -d usa el php8.0 ¿versión?

¡Cualquier idea o consejo sería muy apreciado! 🙂

El wordpress:latest actual está en 7.4 pero puede usar uno de los etiquetas admitidas en su archivo docker-compose. En mi caso usé image: wordpress:6.0-php8.1-apache

  • Gracias por esto, sí, de hecho lo arreglé al final usando la misma etiqueta, no entendía cómo usar las etiquetas en ese entonces, pero ahora las estoy usando 👍🏼 Gracias

    – joshmoto

    30 de junio de 2022 a las 10:24

Estoy de acuerdo con Duncan, necesitas una versión etiquetada

image: wordpress:6.0.2-php8.0-apache

Nota: si su wordpress falla y se quema cuando lo ejecuta, puede composer down y cambiarlo de nuevo. Es mejor deshabilitar cualquier complemento y tema no oficial antes de cambiar, ya que podrían contener código antiguo que probablemente no funcione en la última versión de php.

  • Grandes punteros. Solo estoy experimentando WP en PHP8 localmente. Todavía no estoy migrando nada porque realicé algunas pruebas de servidor en sitios de prueba actuales en PHP8, y obtengo una tonelada de registros obsoletos en WP_DEBUG modo de complementos (incluso complementos premium como Gravity Forms, que es molesto) y también algunos paquetes de proveedores de compositores en mi tema están devolviendo avisos obsoletos. Estoy probando con cautela el desarrollo de temas locales desde cero en PHP lang nivel 8.1 usando mi IDE para guiarme a través de la codificación de la sintaxis de PHP ‘sin advertencias’, a la que me está costando acostumbrarme. Gracias por publicar sobre mi pregunta. 👍🏼

    – joshmoto

    12/09/2022 a las 23:31


¿Ha sido útil esta solución?