Dockerise приложение Laravel - получение отказа в доступе на сервере Apache

Dockerise приложение Laravel - получение отказа в доступе на сервере Apache

Я пытаюсь докеризовать свой сайт Laravel. Я наВиндовс 10и Docker Toolbox у меня работает не совсем хорошо (относительный путь не монтируется должным образом).

Итак, я решил настроить сервер Virtualbox Ubuntu 16.x и установить docker CE внутри VM. Затем я добавил свою C:\Projectsхост-машину Windows в качестве общей папки в свою Ubuntu VM. Затем в своей VM я установил гостевые дополнения, чтобы общая папка появилась в моей VM под/media/sf_Projects/

Наконец, я добавил свою учетную запись без полномочий root latheesanс vboxsfпомощью этой команды: sudo adduser latheesan vboxsfи создал символическую ссылку на /media/sf_Project( /home/latheesan/Projectsдля удобства доступа).

После перезагрузки виртуальной машины Ubuntu я смог получить доступ к содержимому общей папки как пользователь latheesan.

Итак, я клонировал свой проект на хост-компьютере в папку: C:\Projects\mysite.iodir.

Затем я подключился по ssh к своей виртуальной машине Ubuntu virtualbox (работающей под управлением Docker CE) и выполнил команду docker-compose build && docker-compose up -d. Все заработало, и контейнеры были запущены. Когда я посетил свой сайт, работающий в контейнере docker, я получил эту ошибку от apache:

Запрещено У вас нет прав доступа к / на этом сервере.

Итак, я запустил интерактивную оболочку в своем контейнере, и похоже, что каталог сайта смонтирован как root, а не www-data. Возможно, поэтому и возникла ошибка.

Вот все журналы моей работы на хост-машине и контейнере:https://pastebin.com/raw/M7Jq0CgP

Вот моя установка:

Есть идеи, почему том не монтируется как www-data? или это невозможно с помощью хост-машины Windows + Virtual Box vm + Docker CE?

решение1

ОтДокументация Virtualbox:

[...] используются параметры монтирования по умолчанию, и все файлы принадлежат пользователю root. Это можно изменить, добавив некоторые параметры монтирования. Параметры передаются с параметром -o. Вы можете использовать несколько параметров с одним параметром, разделяя значения запятой. См. страницу руководства mount для получения дополнительной информации о том, какие параметры можно использовать. В руководстве пользователя также указаны параметры, совместимые с общими папками. Чтобы смонтировать SF так, чтобы вы были владельцем файлов, используйте следующую команду:

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

Связанный контент