programing

도커의 Word press: 마운트된 볼륨에 디렉터리를 만들 수 없습니다.

starjava 2023. 3. 8. 20:32
반응형

도커의 Word press: 마운트된 볼륨에 디렉터리를 만들 수 없습니다.

의 Wordpress Docker 경로의 입니다./var/www/html:

$ docker exec 5b957c7b9c5ad054883694afbfb80d3c9df6707458d55011f471be0701f3890c ls -l
total 192
-rw-r--r--  1 www-data www-data   418 Sep 25  2013 index.php
-rw-r--r--  1 www-data www-data 19935 Jan  2 18:51 license.txt
-rw-r--r--  1 www-data www-data  7433 Jan 11 17:46 readme.html
-rw-r--r--  1 www-data www-data  5447 Sep 27  2016 wp-activate.php
drwxr-xr-x  9 www-data www-data  4096 May 16 21:50 wp-admin
-rw-r--r--  1 www-data www-data   364 Dec 19  2015 wp-blog-header.php
-rw-r--r--  1 www-data www-data  1627 Aug 29  2016 wp-comments-post.php
-rw-r--r--  1 www-data www-data  2764 May 29 22:19 wp-config-sample.php
-rw-r--r--  1 www-data www-data  3148 May 29 22:19 wp-config.php
drwxr-xr-x  4 www-data www-data  4096 May 16 21:50 wp-content
-rw-r--r--  1 www-data www-data  3286 May 24  2015 wp-cron.php
drwxr-xr-x 18 www-data www-data 12288 May 16 21:50 wp-includes
-rw-r--r--  1 www-data www-data  2422 Nov 21  2016 wp-links-opml.php
-rw-r--r--  1 www-data www-data  3301 Oct 25  2016 wp-load.php
-rw-r--r--  1 www-data www-data 33939 Nov 21  2016 wp-login.php
-rw-r--r--  1 www-data www-data  8048 Jan 11 05:15 wp-mail.php
-rw-r--r--  1 www-data www-data 16255 Apr  6 18:23 wp-settings.php
-rw-r--r--  1 www-data www-data 29896 Oct 19  2016 wp-signup.php
-rw-r--r--  1 www-data www-data  4513 Oct 14  2016 wp-trackback.php
-rw-r--r--  1 www-data www-data  3065 Aug 31  2016 xmlrpc.php

사용자 지정 파일을 영구적으로 저장할 수 있도록 도커 볼륨이 마운트된 Wordpress 컨테이너를 시작하려고 합니다.

$ sudo docker run -p 80:80 --link some-mysql:mysql  -v /var/www:/var/www/html --name docker-wordpress -d wordpress

는 의 입니다./var/www:

$ sudo chown -R www-data:www-data /var/www
$ sudo find /var/www/ -type d -exec chmod 755 {} \;
$ sudo find /var/www/ -type f -exec chmod 644 {} \;

컨테이너 내에서 Wordpress를 실행할 때 다음과 같은 오류가 여전히 나타납니다.

디렉토리를 작성할 수 없습니다.

Wordpress가 마운트된 도커 볼륨에 쓸 수 있도록 권한을 올바르게 설정하는 방법은 무엇입니까?

당신의 오류 메시지를 보고 당신이 플러그인을 설치하거나 워드프레스를 업데이트하려고 한다는 결론을 내렸습니다.

이 문제는 좀 이해하기 어렵다.

, 「」의chown -R www-data:www-data /var/www'CHANGE: 'CHANGE: 'CHANGE: 'CHANGE: 'CHANGE: 'CHANGE: 'CHANGE: 'CHANGE: 'CHANGE: 'DO

에 「」를 합니다.upload&plugins폴더가 아직 존재하지 않기 때문에 설치 관리자가 이 폴더를 생성하려고 할 때plugins/subfolder에러가 발생합니다.

Wordpress / Docker 플러그인 설치 권한 문제 수정 방법

그러나 이 문제를 파악하는 것은 매우 쉽습니다.

옵션 A

안에서.Docker following은 맨 끝에 추가 전에 following following following following following following following following following following.[CMD]명령어를 입력합니다.

RUN mkdir /var/www/html/wp-content/plugins
RUN mkdir /var/www/html/wp-content/uploads
RUN chown -R www-data:www-data /var/www
RUN find /var/www/ -type d -exec chmod 0755 {} \;
RUN find /var/www/ -type f -exec chmod 644 {} \;

옵션 B

in your container(도커 )
docker exec -it <container_name> /bin/bash

함께 .
docker ps

만 하면 됩니다.
$ mkdir /var/www/html/wp-content/plugins
$ mkdir /var/www/html/wp-content/uploads
$ chown -R www-data:www-data /var/www
$ find /var/www/ -type d -exec chmod 0755 {} \;
$ find /var/www/ -type f -exec chmod 644 {} \;

Mathias Asberg의 답변에 따라 2개의 폴더(플러그인 및 업로드 권한 갱신 및 볼륨 마운트)를 작성할 수 있습니다.

순서:

  • mkdir plugins uploads
  • chmod -R 777 plugins uploads
  • docker-display를 업데이트합니다.볼륨을 마운트하려면 yaml
  volumes: # 
  - ./plugins:/var/www/html/wp-content/plugins
  - ./uploads:/var/www/html/wp-content/uploads

마운트된 볼륨을 사용하고 있을 때도 마찬가지로 호스트 운영 체제와 WordPress 도커 이미지 모두에서 파일을 관리할 수 있는지 확인하고 싶었습니다.

도커 내에서 WordPress 사이트는 UID 82를 사용하여 사용자 www-data로 실행됩니다.또한 연관된 www-data 그룹도 있으며 그룹 ID는 82입니다.www-data와 동일한 ID로 호스트 OS에 그룹을 만들고 그룹 소유권을 해당 그룹으로 변경하면 호스트와 도커 이미지 모두 파일을 관리할 수 있습니다.

이 예에서는 호스트 OS 상에서 ec2-user라는 사용자에게 접근 권한을 부여합니다.모든 스크립트는 호스트 OS 상에서 실행됩니다.

  • 먼저 호스트에 www-data와 동일한 ID를 가진 기존 사용자 또는 그룹이 있는지 확인합니다.
getent group | grep 82
cat /etc/passwd | grep 82
  • 사용자/그룹 경합이 없다고 가정하고 도커 내의 www-data 그룹과 동일한 그룹 ID를 가진 그룹을 호스트에 만들고 필요한 사용자를 해당 그룹에 추가합니다.다음 예에서는 호스트에서 동일한 그룹 이름을 사용합니다.
sudo groupadd -g 82 www-data
sudo usermod -a -G www-data ec2-user
  • 마지막으로 파일 그룹 소유권을 변경하고 업데이트 권한을 변경하여 호스트와 도커 모두에서 www 데이터 그룹에 읽기 및 쓰기 권한을 부여합니다.
sudo chgrp -R www-data ~/repos/site/html
find ~/repos/site/html -type d -exec chmod 0775 {} \;
find ~/repos/site/html -type f -exec chmod 664 {} \;

이것에 의해, 도커 이미지내에서 다음의 권한이 생깁니다.호스트의 ec2 유저와 도커가 있는 www 데이터 모두 html내의 모든 파일과 폴더를 읽고 쓸 수 있습니다.

bash-5.0# ls -lah
total 248K
drwxrwxr-x    5 1000     www-data    4.0K Apr 25 09:03 .
drwxr-xr-x    3 root     root          18 Oct 21  2019 ..
-rw-rw-r--    1 1000     www-data     405 Apr 23 12:21 index.php
-rw-rw-r--    1 1000     www-data   19.1K Apr 23 12:21 license.txt
-rw-rw-r--    1 1000     www-data    7.3K Apr 23 12:21 readme.html
-rw-rw-r--    1 1000     www-data    7.0K Apr 23 12:21 wp-activate.php
drwxrwxr-x    9 1000     www-data    4.0K Apr 23 12:22 wp-admin
-rw-rw-r--    1 1000     www-data     351 Apr 23 12:21 wp-blog-header.php
-rw-rw-r--    1 1000     www-data    2.3K Apr 23 12:21 wp-comments-post.php
-rw-rw-r--    1 1000     www-data    2.8K Apr 23 12:35 wp-config-sample.php
-rw-rw-r--    1 1000     www-data    3.4K Apr 23 12:35 wp-config.php
drwxrwxr-x    6 1000     www-data      84 Apr 23 12:22 wp-content
-rw-rw-r--    1 1000     www-data    3.8K Apr 23 12:22 wp-cron.php
drwxrwxr-x   26 1000     www-data   12.0K Apr 23 12:22 wp-includes
-rw-rw-r--    1 1000     www-data    2.4K Apr 23 12:22 wp-links-opml.php
-rw-rw-r--    1 1000     www-data    3.8K Apr 23 12:22 wp-load.php
-rw-rw-r--    1 1000     www-data   46.8K Apr 23 12:22 wp-login.php
-rw-rw-r--    1 1000     www-data    8.4K Apr 23 12:22 wp-mail.php
-rw-rw-r--    1 1000     www-data   22.5K Apr 23 12:22 wp-settings.php
-rw-rw-r--    1 1000     www-data   31.2K Apr 23 12:22 wp-signup.php
-rw-rw-r--    1 1000     www-data    4.6K Apr 23 12:22 wp-trackback.php
-rw-rw-r--    1 1000     www-data    3.2K Apr 23 12:22 xmlrpc.php

언급URL : https://stackoverflow.com/questions/44251019/wordpress-on-docker-could-not-create-directory-on-mounted-volume

반응형