Mueva Docker Compose WordPress con volumen local al nuevo host con el permiso correcto

Mueva Docker Compose WordPress con volumen local al nuevo host con el permiso correcto

Tengo dificultades para migrar/mover mi proyecto Docker Compoe con Wordpress y Mysql a un nuevo host.

Mi docker-compoye.yamles el siguiente:

version: '3.1'

services:

  wordpress:
    image: wordpress
    restart: always
    ports:
      - 8099:80
    environment:
      WORDPRESS_DB_HOST: db
      WORDPRESS_DB_USER: root
      WORDPRESS_DB_PASSWORD: 'ahw5ai8gu9waewiuNgaithev7xie0jah'
      WORDPRESS_DB_NAME: wordpress
      WORDPRESS_DEBUG: 1
    depends_on:
      - db
    volumes:
      - .wordpress/plugins:/var/www/html/wp-content/plugins
      - .wordpress/themes:/var/www/html/wp-content/themes
      - .wordpress/uploads:/var/www/html/wp-content/uploads
      - ./wordpress.ini:/usr/local/etc/php/conf.d/wordpress.ini

  db:
    image: mysql:5.7
    restart: always
    ports:
      - 3306:3306
    environment:
      MYSQL_DATABASE: exampledb
      MYSQL_USER: exampleuser
      MYSQL_PASSWORD: examplepass
      MYSQL_ROOT_PASSWORD: ahw5ai8gu9waewiuNgaithev7xie0jah
    volumes:
      - .db:/var/lib/mysql

La estructura del directorio es la siguiente:

drwxrwxr-x  8     999 mbecker 4,0K Mär  5 09:36 .db
-rwxrwxr-x  1 mbecker mbecker 2,5K Mär  2 16:39 docker-compose.yaml
drwxrwxrwx  6 mbecker mbecker 4,0K Apr 11  2021 .wordpress

He realizado las siguientes estrategias de migración para copiar el directorio/archivos completos al nuevo host:

  • rsync el directorio completo (y subdirectorio) al nuevo historial
  • cree un .tar del directorio local recursivo, muévase al nuevo host y extráigalo

Sin embargo, el permiso del archivo, por ejemplo en la ruta del volumen/directorio, .wordpress/plugins/cambió de www-dataa mbecker.

Al iniciar el proyecto de Docker Compose en el nuevo host, se produce el siguiente error de Wordpress:

Notice: Function WP_User_Query::query was called incorrectly. User queries should not be run before the plugins_loaded hook. Please see Debugging in WordPress for more information. (This message was added in version 6.1.1.) in /var/www/html/wp-includes/functions.php on line 5835

** Los datos de la base de datos se importan correctamente a través del script de importación ** Los nombres DNS apuntan a la nueva IP y la directiva de proxy inverso de Nginx es la misma

¿Alguna idea de cómo mover los datos de un host a otro con el permiso de archivo correcto?

Respuesta1

En general, para solucionar problemas de permisos, debería funcionar `sudo chown -R www-data:www-data folder". En mi caso, omití especificar la etiqueta de imagen. Docker extrae automáticamente la imagen con la etiqueta "latest "; teniendo un proyecto de Docker Compose en ejecución durante algunos años, la imagen "más reciente" es una imagen que tiene 2 años. Agregué la etiqueta de imagen correcta al nuevo proyecto de Docker Compose migrado y está funcionando.

información relacionada