Я пытаюсь перенести свой проект Docker Compoe с Wordpress и Mysql на новый хост.
Мой docker-compoye.yaml
вариант следующий:
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
Структура каталога следующая:
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
Я применил следующие стратегии миграции, чтобы скопировать весь каталог/файлы на новый хост:
- rsync весь каталог (и подкаталог) в новую историю
- создайте .tar локального каталога рекурсивно, переместите на новый хост и извлеките его
Однако, например, разрешение файла в пути к тому/каталогу .wordpress/plugins/
изменилось с www-data
на mbecker
.
Запуск проекта Docker Compose на новом хосте приводит к следующей ошибке 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
** Данные базы данных импортируются корректно с помощью скрипта импорта ** DNS-имена указывают на новый IP-адрес, а директива обратного прокси-сервера Nginx остается прежней
Есть идеи, как перенести данные с одного хоста на другой с правильными правами доступа к файлам?
решение1
В общем, для исправления проблем с правами доступа должно сработать выполнение команды `sudo chown -R www-data:www-data folder". В моем случае я забыл указать тег образа. Docker автоматически извлекает образ с тегом "latest"; при запущенном проекте Docker Compose в течение нескольких лет "latest"-образом является образ, которому 2 года. Я добавил правильный тег образа в новый перенесенный проект Docker Compose, и он работает.