Ich habe Probleme, mein Docker Compoe-Projekt mit Wordpress und Mysql auf einen neuen Host zu migrieren/verschieben.
Meine docker-compoye.yaml
ist wie folgt:
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
Die Verzeichnisstruktur ist wie folgt:
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
Ich habe die folgenden Migrationsstrategien angewendet, um das komplette Verzeichnis/die kompletten Dateien auf den neuen Host zu kopieren:
- rsync das komplette Verzeichnis (und Unterverzeichnis) mit dem neuen hist
- Erstellen Sie rekursiv eine .tar-Datei des lokalen Verzeichnisses, wechseln Sie zum neuen Host und entpacken Sie sie
Allerdings wurde die Dateiberechtigung beispielsweise im Datenträger-/Verzeichnispfad .wordpress/plugins/
von www-data
auf geändert mbecker
.
Das Starten des Docker-Compose-Projekts auf dem neuen Host führt zu folgendem Wordpress-Fehler:
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
** Die Datenbankdaten werden korrekt per Importskript importiert. ** Die DNS-Namen verweisen auf die neue IP und die Nginx-Reverse-Proxy-Direktive ist dieselbe.
Irgendwelche Ideen, wie man die Daten mit den richtigen Dateiberechtigungen von einem Host auf einen anderen verschiebt?
Antwort1
Um Berechtigungsprobleme zu beheben, sollte im Allgemeinen ein `sudo chown -R www-data:www-data folder" funktionieren. In meinem Fall habe ich vergessen, den Image-Tag anzugeben. Docker zieht automatisch das Image mit dem Tag „latest“; da ich seit einigen Jahren ein Docker-Compose-Projekt laufe, ist das „latest“-Image ein Image, das 2 Jahre alt ist. Ich habe dem neu migrierten Docker-Compose-Projekt den richtigen Image-Tag hinzugefügt und es funktioniert.