로컬 볼륨이 있는 docker compose wordpress를 올바른 권한이 있는 새 호스트로 이동합니다.

로컬 볼륨이 있는 docker compose wordpress를 올바른 권한이 있는 새 호스트로 이동합니다.

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-datambecker

새 호스트에서 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 프로젝트에 올바른 이미지 태그를 추가했고 작동 중입니다.

관련 정보