Я пытаюсь докеризовать свой сайт 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.io
dir.
Затем я подключился по ssh к своей виртуальной машине Ubuntu virtualbox (работающей под управлением Docker CE) и выполнил команду docker-compose build && docker-compose up -d
. Все заработало, и контейнеры были запущены. Когда я посетил свой сайт, работающий в контейнере docker, я получил эту ошибку от apache:
Запрещено У вас нет прав доступа к / на этом сервере.
Итак, я запустил интерактивную оболочку в своем контейнере, и похоже, что каталог сайта смонтирован как root, а не www-data. Возможно, поэтому и возникла ошибка.
Вот все журналы моей работы на хост-машине и контейнере:https://pastebin.com/raw/M7Jq0CgP
Вот моя установка:
docker-compose.yml https://pastebin.com/raw/V16ctwuj
docker-compose/сайт/Dockerfile https://pastebin.com/raw/pWhf8uzH
docker-compose/site/vhost.conf https://pastebin.com/raw/wgZ68e9E
docker-compose/site/php.ini https://pastebin.com/raw/neSiaAqw
Есть идеи, почему том не монтируется как www-data
? или это невозможно с помощью хост-машины Windows + Virtual Box vm + Docker CE?
решение1
[...] используются параметры монтирования по умолчанию, и все файлы принадлежат пользователю root. Это можно изменить, добавив некоторые параметры монтирования. Параметры передаются с параметром -o. Вы можете использовать несколько параметров с одним параметром, разделяя значения запятой. См. страницу руководства mount для получения дополнительной информации о том, какие параметры можно использовать. В руководстве пользователя также указаны параметры, совместимые с общими папками. Чтобы смонтировать SF так, чтобы вы были владельцем файлов, используйте следующую команду:
sudo mount -t vboxsf -o rw,uid=1000,gid=1000 share ~/host