Wordpress 및 Mysql을 사용하여 Docker Compoe 프로젝트를 새 호스트로 마이그레이션/이동하는 데 어려움을 겪고 있습니다.
내 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 폴더"를 수행하면 작동합니다. 제 경우에는 이미지 태그를 지정하는 것을 놓쳤습니다. Docker는 "latest" 태그가 있는 이미지를 자동으로 가져옵니다. "; 몇 년 동안 docker compose 프로젝트를 실행하면서 "최신" 이미지는 2년 된 이미지입니다. 새로 마이그레이션된 docker compose 프로젝트에 올바른 이미지 태그를 추가했고 작동 중입니다.