Tengo un wordpress que funciona bien en localhost. Ahora debemos implementarlo en nuestro entorno de prueba usando Docker. Implementar archivos php con docker estuvo bien. Configuré worpdress para usar variables de entorno en lugar de valores codificados en wp-config.php.
docker run -d --name wordpress -it --rm -p 80:80 \ -e DB_HOST=10.10.10.10:3306 \ -e DB_USER=root \ -e DB_PASSWORD=secret \ -e DB_NAME=wordpress \ -e AUTH_KEY=$RANDOM_KEY \ -e SECURE_AUTH_KEY=$RANDOM_KEY \ -e NONCE_KEY=$RANDOM_KEY \ -e LOGGED_IN_KEY=$RANDOM_KEY \ -e AUTH_SALT=$RANDOM_KEY \ -e SECURE_AUTH_SALT=$RANDOM_KEY \ -e LOGGED_IN_SALT=$RANDOM_KEY \ -e NONCE_SALT=$RANDOM_KEY \ -e WP_DEBUG=true \ -e DISABLE_WP_CRON=true \ -e TZ=America/Lima wordpress:5.7.2El problema está en la implementación de la base de datos. Exporté un volcado de mi host local y lo importé a mi nueva base de datos de prueba. Vi que en el volcado de la base de datos, todas las URL están codificadas con localhost:
table wp_options 'siteurl','http://localhost' table wp_posts 'you should go to <a href=\"http://localhost/wp-admin/...'' table wp_users 1,'admin','****','admin','admin@mail.com','http://localhost'Cuando intento acceder a mi dominio de prueba, los activos se descargan de localhost, ignorando mi dominio. Entiendo que este comportamiento se debe al "localhost" codificado en la base de datos exportada desde la máquina del desarrollador.
WP en localhost al dominio de wordpress
El dominio de wordpress se controla configurando 2 opciones de base de datos:
Si no desea cambiarlo en la base de datos, puede hacerlo en wp-config.php
define('WP_SITEURL', $_ENV["USER"]); define('WP_HOME', $_ENV["HOME"]);Puede hacer que se lea desde una variable de entorno y luego configurarla dentro del contenedor.