laravel 애플리케이션 Dockerise - Apache 서버에서 권한이 거부되었습니다.

laravel 애플리케이션 Dockerise - Apache 서버에서 권한이 거부되었습니다.

내 laravel 사이트를 도킹하려고합니다. 나는 켜져있다윈도우 10그리고 docker 도구 상자는 나에게 잘 작동하지 않습니다(상대 경로가 잘 마운트되지 않습니다).

그래서 Virtualbox Ubuntu 16.x 서버를 설정하고 VM 내부에 docker CE를 설치하기로 결정했습니다. 그런 다음 C:\ProjectsWindows 호스트 컴퓨터를 Ubuntu VM에 공유 폴더로 추가했습니다 . 그런 다음 내 VM 내에서 게스트 추가를 설치하여 공유 폴더가 내 VM에 아래에 표시되도록 했습니다./media/sf_Projects/

마지막으로 다음 명령을 사용하여 루트가 아닌 계정을 latheesan에 추가하고 (쉬운 액세스를 위해) 에 대한 심볼릭 링크를 만들었습니다 .vboxsfsudo adduser latheesan vboxsf/media/sf_Project/home/latheesan/Projects

Ubuntu VM을 재부팅한 후 latheesan 사용자로 공유 폴더 콘텐츠에 액세스할 수 있었습니다.

그래서 호스트 컴퓨터의 프로젝트를 C:\Projects\mysite.iodir에 복제했습니다.

그런 다음 Ubuntu virtualbox VM(Docker CE 실행)에 SSH로 연결하고 docker-compose build && docker-compose up -d명령을 실행했습니다. 모든 것이 작동했고 컨테이너가 가동되었습니다. Docker 컨테이너에서 실행 중인 사이트를 방문했을 때 Apache에서 다음 오류가 발생했습니다.

금지됨 이 서버에 / 접근할 수 있는 권한이 없습니다.

그래서 내 컨테이너에서 대화형 셸을 시작했는데 사이트 디렉터리가 www-data가 아닌 루트로 마운트된 것처럼 보입니다. 아마도 이것이 오류의 이유일 것입니다.

내 호스트 머신 및 컨테이너에서 작업한 모든 로그는 다음과 같습니다.https://pastebin.com/raw/M7Jq0CgP

이것은 내 설정입니다.

볼륨이 마운트되지 않는 이유에 대한 아이디어가 있습니까 www-data? 아니면 Windows 호스트 시스템 + 가상 상자 VM + 도커 CE를 사용하면 불가능합니까?

답변1

에서Virtualbox 문서:

[...] 기본 마운트 옵션이 사용되며 모든 파일은 루트가 소유합니다. 이는 일부 마운트 옵션을 추가하여 변경할 수 있습니다. 옵션은 -o 매개변수와 함께 전달됩니다. 하나의 매개변수로 여러 옵션을 사용할 수 있으며 값을 쉼표로 구분합니다. 사용할 수 있는 옵션에 대한 자세한 내용은 mount 매뉴얼 페이지를 참조하세요. 사용자 설명서에는 공유 폴더와 호환되는 옵션도 나와 있습니다. 자신이 파일의 소유자가 되도록 SF를 마운트하려면 다음 명령을 사용하십시오.

sudo mount -t vboxsf -o rw,uid=1000,gid=1000 share ~/host

관련 정보