Я пытаюсь докеризировать свой сайт laravel. Я работаю на Windows 10, и инструментарий docker не очень хорошо работает для меня (относительный путь не монтируется).
Поэтому я решил создать сервер Virtualbox Ubuntu 16.x и установить docker CE внутри виртуальной машины. Затем я добавил папку C:\Projects
на моей хост-машине windows в качестве общей папки в мою ВМ Ubuntu. Затем внутри моей ВМ я установил гостевые дополнения, чтобы общая папка появилась в моей ВМ под /media/sf_Projects/
Наконец, я добавил свою учетную запись без права рута latheesan
в vboxsf
с помощью следующей команды: sudo adduser latheesan vboxsf
и создал символическую ссылку на /media/sf_Project
в /home/latheesan/Projects
(для легкого доступа).
После перезагрузки виртуальной машины Ubuntu я смог получить доступ к содержимому общей папки как пользователь latheesan.
Итак, я клонировал свой проект на хост-машине в: C:\Projects\mysite.io
dir.
Затем я вошел по ssh в свою виртуальную машину Ubuntu virtualbox VM (на которой работает Docker CE) и выполнил команду docker-compose build && docker-compose up -d
. Все сработало, и контейнеры были запущены. Когда я посетил свой сайт, запущенный в контейнере docker, я получил эту ошибку от apache:
Forbidden You don't have permission to access / on this server.
Итак, я запустил интерактивный shell в свой контейнер, и похоже, что каталог сайта смонтирован как root, а не www-data. Возможно, поэтому и возникает ошибка.
Вот все журналы моей работы на хост-машине и контейнере: https://pastebin.com/raw/M7Jq0CgP
Вот моя установка:
docker-compose.yml https://pastebin.com/raw/V16ctwuj
docker-compose/site/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 host machine + virtual box vm + docker ce?
[...] используются параметры монтирования по умолчанию, и все файлы принадлежат пользователю root. Это можно изменить, добавив некоторые параметры монтирования. Параметры передаются с параметром -o. Вы можете использовать несколько вариантов с одним параметром, разделяя значения запятыми. См. Справочную страницу mount для получения дополнительной информации о том, какие параметры вы можете использовать. В Руководстве пользователя также указаны параметры, совместимые с общими папками. Чтобы смонтировать SF, чтобы вы стали владельцем файлов, используйте эту команду:
sudo mount -t vboxsf -o rw, uid = 1000, gid = 1000 share ~ / host