¿La guía de desarrollo local del repositorio de Github está en mal estado?

10 minutos de lectura

¿La guia de desarrollo local del repositorio de Github esta
Cristina Bressler

no sé qué salió mal cuando seguí estas instrucciones en un repositorio de github: https://github.com/richtabor/bloques-de-construccion

R. Primero, necesita un entorno de WordPress para ejecutar este complemento y comenzar el desarrollo de bloques. La forma más rápida de ponerse en marcha es utilizar la configuración de la ventana acoplable proporcionada. Instalar en pc docker-ce y docker-compose
(si es necesario) siguiendo las instrucciones más recientes en el sitio de Docker.

B. Inicie Docker en su máquina.

C. En la carpeta de su preferencia, clone este proyecto e ingrese al directorio de trabajo:

git clone https://github.com/richtabor/building-blocks.git
cd building-blocks

D. Para iniciar esta instancia local de WordPress, ejecute dentro del proyecto: docker-compose up -d . Una vez iniciado, WordPress ahora debería estar disponible en http://localhost:9999. Nota: Cuando hayamos terminado, ejecute docker-compose stop para detener esta configuración local.

Claramente seguí los pasos. Descargué Docker Desktop para Mac. Sin embargo, no estoy muy seguro de esto. docker-ce y docker-compose pero pensé que el escritorio docker para mac que descargué ya tiene esas cosas. así que corrí docker-compose up -d y fui al localhost pero recibí este mensaje de error:

Error al establecer una conexión de base de datos

Así que miré docker-compost.yml en el repositorio de github que cloné en mi carpeta local y esto es lo que mostró:

version: '3.1'

services:

  wordpress:
    image: wordpress
    ports:
      - 9999:80
    environment:
      WORDPRESS_DB_PASSWORD: password
    volumes:
      - ./:/var/www/html/wp-content/plugins/building-blocks
      - ./wp-content:/var/www/html/wp-content

  mysql:
    image: mysql:5.7
    environment:
      MYSQL_ROOT_PASSWORD: password

Entonces, llegué a la conclusión de que tal vez haya un problema con el archivo docker-compose.yml.

¿Cómo puedo solucionar esto?

  • Esto no parece estar relacionado con git o github. los git no se requiere etiqueta.

    –Asif Kamran Malick

    12 de marzo de 2021 a las 19:16

  • Pensé que el archivo yml tal vez no estaba completo para un entorno local. Podrían haber dicho simplemente en su guía que editen el archivo .yml a lo que sea que tengamos configurado en nuestro entorno local de wordpress de la ventana acoplable. Su guía fue realmente confusa…

    – Cristina Bressler

    12 de marzo de 2021 a las 22:37

  • esperando su respuesta pronto. gracias por tu explicacion tambien

    – Cristina Bressler

    13 de marzo de 2021 a las 9:22

  • Lo siento por la respuesta tardía, he publicado una respuesta. Espero eso ayude 🙂

    – joshmoto

    13 de marzo de 2021 a las 22:38

1647219308 700 ¿La guia de desarrollo local del repositorio de Github esta
josemoto

Bien, tienes instalada la aplicación docker mac, creo que esto debería ser suficiente para ejecutar un entorno docker wp local.

Encuentro la instalación de paquetes ocultos globalmente a través de la terminal usando https://brew.sh/ es útil

  1. Cree una nueva carpeta de proyecto local vacía, o idealmente un nuevo repositorio remoto de git para su proyecto, luego baje el repositorio vacío a su computadora. Como está en Mac, tiendo a mantener todas las carpetas de proyectos locales en el Sites carpeta en su directorio de usuario…

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

  1. En la carpeta del proyecto, cree un archivo llamado uploads.ini y agregarle este código…
file_uploads = On
memory_limit = 2000M
upload_max_filesize = 2000M
post_max_size = 2000M
max_execution_time = 600
  1. Cree una carpeta de temas vacía y asigne a la carpeta el mismo nombre que desea que sea en los entornos de servidor de ensayo y producción. estoy usando guna portfolio en este ejemplo.

ingrese la descripción de la imagen aquí

  1. Antes de acoplar un tema, es mejor agregar algunos archivos a su carpeta de temas para que sea un tema válido, de lo contrario, es posible que no pueda activarlo…

ingrese la descripción de la imagen aquí

  1. Asegúrate que style.css tiene un código de comentario de tema de WordPress válido…
/*
Theme Name: Portfolio
Author: Kristina Bressler
Version: 1.0
License: Private
*/
  1. Ahora vamos a crear nuestro docker-compose.yml archivo de configuración en nuestra carpeta de proyecto, vea los comentarios en el código a continuación…
version: '3.7'

# needed for mailhog
networks:
  wordpress:
    ipam:
      config:
        - subnet: 172.25.0.0/16

services:

  # here is our mysql database container
  db:
    image: mysql:5.7
    volumes:
      # our persistent local database re routing
      - ./db:/var/lib/mysql:delegated

      # this is handy for dockering up from a mysql dumped existing database, not needed for new project
      #- ./docker/db-dumps:/docker-entrypoint-initdb.d:delegated
    ports:
      - "3306:3306"
    restart: always
    environment:
      # these can be the same for every local docker project
      # never pass these to the staging or production wp-configs database settings
      MYSQL_ROOT_PASSWORD: somewordpress
      MYSQL_DATABASE: wordpress
      MYSQL_USER: wordpress
      MYSQL_PASSWORD: wordpress
    networks:
      - wordpress

  # here is our wordpress container
  wordpress:
    depends_on:
      - db
    image: wordpress:latest
    volumes:
      # our persistent local data re routing
      # if you dont use persistent data then every time you docker down and docker up
      # docker will just rebuild a brand new installation and your will lose all previous session data

      # our persistent theme folder routing for portfolio theme
      # make sure this mapping matches your theme folder name (this example is portfolio)
      - ./portfolio:/var/www/html/wp-content/themes/portfolio:delegated

      # our persistent plugins and uploads folder
      - ./plugins:/var/www/html/wp-content/plugins
      - ./uploads:/var/www/html/wp-content/uploads

      # our persistent uploads.ini setting (uploads.ini must exist before running this)
      - ./uploads.ini:/usr/local/etc/php/conf.d/uploads.ini

    ports:
      - "80:80"
    restart: always
    networks:
      - wordpress
    environment:

      # docker wp config settings
      # these can be the same for every local docker project
      # never pass these to the staging or production wp-configs
      WORDPRESS_DB_HOST: db:3306
      WORDPRESS_DB_USER: wordpress
      WORDPRESS_DB_PASSWORD: wordpress
      WORDPRESS_DB_NAME: wordpress
      WORDPRESS_TABLE_PREFIX: wp_
      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

      # extra wp configs
      WORDPRESS_CONFIG_EXTRA: |

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

        /* 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@portfolio.com');
        define('WORDPRESS_SMTP_FROM_NAME', 'Portfolio');

        /* licence key defining examples - fake keys */
        define('GF_LICENSE_KEY', '567e5cc582262cea465f5ff01d3060cd');
        define('ACP_LICENCE', 'ebfb-4deb-8b1c-a580a44a-12435e03615d');

        /* if wp home is not defined */
        if(!defined('WP_HOME')) {
          /* force our home url override for permalinks and wp get functions */
          define('WP_HOME', 'http://localhost');
          define('WP_SITEURL', WP_HOME);
        }

  # here is our mail hog content
  # this creates a local mail server for see outgoing email from this wordpress site
  # access the mailbox via http://localhost:8025/
  mailhog:
    image: mailhog/mailhog:latest
    ports:
      - "8025:8025"
    networks:
      - wordpress
  1. Antes de acoplarnos, agregue este código en la parte superior de su functions.php. Esto configurará el correo saliente local para ser enviado a correo. Además de algunas funciones útiles de ayuda al desarrollo…
<?php
/**
 * @author      Kristina Bressler
 * @version     1.0
 */

// configure PHPMailer to send through smtp
add_action('phpmailer_init', function($phpmailer) {

    $phpmailer->isSMTP();
    // host details
    $phpmailer->SMTPAuth = WORDPRESS_SMTP_AUTH;
    $phpmailer->SMTPSecure = WORDPRESS_SMTP_SECURE;
    $phpmailer->SMTPAutoTLS = false;
    $phpmailer->Host = WORDPRESS_SMTP_HOST;
    $phpmailer->Port = WORDPRESS_SMTP_PORT;
    // from details
    $phpmailer->From = WORDPRESS_SMTP_FROM;
    $phpmailer->FromName = WORDPRESS_SMTP_FROM_NAME;
    // login details
    $phpmailer->Username = WORDPRESS_SMTP_USERNAME;
    $phpmailer->Password = WORDPRESS_SMTP_PASSWORD;

});

// stops wp error by defining valid email address from our wp config
add_filter('wp_mail_from', function() { return WORDPRESS_SMTP_FROM; } );
add_filter('wp_mail_from_name', function () { return WORDPRESS_SMTP_FROM_NAME; } );

// wp mail failed action
add_action('wp_mail_failed', function($wp_error) {

    // dump any mail errors on local and staging environments
    is('local','staging') ? dd($wp_error) : false;

}, 10, 1);

// d dump print function
function dd(...$args) {
    dump(...$args);
    exit;
}

// dump print function
function dump(...$args) {
    foreach ($args as $dump) {
        echo '<pre class="dd">' . print_r($dump, true) . '</pre>';
    }
}

// environment
function environment() {
    return defined('ENVIRONMENT') ? ENVIRONMENT : 'production';
}

// is environment
function is(...$environments) {
    foreach ($environments as $environment) {
        if($environment === environment())
            return true;
    }
}
  1. Ahora estamos listos para acoplar, su estructura de carpetas debería verse así…

ingrese la descripción de la imagen aquí

  1. Para construir este entorno usando la ventana acoplable, debe ejecutar este comando docker-compose up -d sobre el project carpeta que contiene el .yml expediente.

Puede tener algunos problemas si no ha ejecutado docker-compose down en el complemento de bloques de construcción .yml carpeta principal que ya ha ejecutado. Deberá detener cualquier entorno docker en ejecución para que funcione lo anterior. Esto es lo mismo con todos sus proyectos docker en el futuro, no puede docker docker-compose up -d en el proyecto si ya se está ejecutando otro. Simplemente ejecuta docker-compose down en el entorno de ejecución para apagarlo.

  1. Si ha ejecutado con éxito docker-compose up -d en nuestro project carpeta, notará que la estructura de carpetas de su proyecto ahora se ve así…

ingrese la descripción de la imagen aquí

  1. Ahora simplemente visite http://localhost para completar el proceso de instalación de WordPress…

ingrese la descripción de la imagen aquí

  1. Una vez instalado, deberá activar nuestro tema de cartera…

ingrese la descripción de la imagen aquí

  1. Una vez que el tema está activado, puede ver el correo electrónico saliente de este entorno local de WordPress a través de mailhog simplemente visitando http://localhost:8025

ingrese la descripción de la imagen aquí

  1. Si está utilizando git, debe agregar un .gitignore archivo a la carpeta de su proyecto. No quieres estar confirmando carpetas db, plugins y uploads a su repositorio. Estos son muy grandes en tamaño de archivo y no en código de proyecto. Encuentre otros medios para hacer una copia de seguridad de estos, como la sincronización de copia de seguridad de Google Drive o algo así…
/db
/plugins
/uploads
/portfolio/dist
/portfolio/node_modules
/portfolio/vendor
  1. Para obtener el https://github.com/richtabor/bloques-de-construccion complemento instalado, simplemente descargue o clone este repositorio en el plugins carpeta en su proyecto local…

ingrese la descripción de la imagen aquí

  1. Luego vaya a la sección de complementos en el tablero de WordPress y active el complemento Building Blocks…

ingrese la descripción de la imagen aquí

¡Y listo!

Para detener y eliminar el entorno, simplemente ejecute docker-compose down en la carpeta del proyecto.

Ahora puedes con seguridad docker-compose up -d en otro proyecto.

Algunas notas…

  • Nuestro mapeo persistente en nuestro docker-compose.yml nos permite acoplar un proyecto con todos los mismos datos de archivo y datos mysql que teníamos la última vez que acoplamos el entorno. Sin estas asignaciones persistentes, Docker reconstruirá una instalación completamente nueva desde el Imagen del centro de la ventana acoplable de WordPress.

  • no sincronizar db, plugins y uploads datos de entornos locales a escenarios/producción. Administrar manualmente plugins sobre ambientes. uploads y la base de datos son independientes de cada entorno.

  • Puede volcar cuidadosamente tablas de bases de datos locales específicas como inserciones e importarlas/reemplazarlas en bases de datos de preparación/producción si también lo necesita. Simplemente no recomiendo hacer esto con volcados de bases de datos locales completos.

  • Volcar bases de datos completas de preparación/producción y cargarlas en el entorno de la ventana acoplable local está absolutamente bien, pero no al revés.

  • wp-config.php en entornos de ensayo/producción, lo ideal es que se administren manualmente y no se sincronicen desde entornos locales. No incluido en los repositorios por si acaso.

  • ¡Se ve bien! Tendré que probarlo. Pero, ¿por qué necesito mailhog? Parece que lo usa para el correo electrónico que no necesito cuando estoy editando el complemento.

    – Cristina Bressler

    14 de marzo de 2021 a las 2:45

  • Lo siento, no entendí la pregunta. Pensé que quería instalar el complemento para usarlo en un proyecto local, no para editar el complemento. La respuesta anterior es un poco exagerada entonces. Simplemente puede actualizar el complemento yml a esto … gist.github.com/joshmoto/ec7223c40bf7f6378094cd06b6006221

    – joshmoto

    14 de marzo de 2021 a las 14:23

  • Sin embargo, parece que no puedo hacer que npm se instale correctamente.

    – joshmoto

    14/03/2021 a las 14:25

¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad