Dockerisieren Sie eine Laravel-Anwendung - die Berechtigung wird auf dem Apache-Server verweigert

Dockerisieren Sie eine Laravel-Anwendung - die Berechtigung wird auf dem Apache-Server verweigert

Ich versuche, meine Laravel-Site zu dockerisieren. Ich bin aufWindows 10und die Docker-Toolbox funktioniert bei mir nicht ganz gut (der relative Pfad lässt sich nicht richtig mounten).

Also habe ich beschlossen, einen Virtualbox Ubuntu 16.x-Server einzurichten und Docker CE in der VM zu installieren. Dann habe ich meinen C:\Projectsauf meinem Windows-Host-Rechner als freigegebenen Ordner zu meiner Ubuntu-VM hinzugefügt. Dann habe ich innerhalb meiner VM die Guest Additions installiert, so dass der freigegebene Ordner in meiner VM unter/media/sf_Projects/

Zuletzt habe ich latheesanmit vboxsfdiesem Befehl mein Nicht-Root-Konto hinzugefügt: sudo adduser latheesan vboxsfund einen symbolischen Link zu erstellt /media/sf_Project( /home/latheesan/Projectsfür einfachen Zugriff).

Nach dem Neustart der Ubuntu-VM konnte ich als Benutzer „latheesan“ auf den Inhalt des freigegebenen Ordners zugreifen.

Also habe ich mein Projekt auf meinem Hostcomputer in C:\Projects\mysite.iofolgendes Verzeichnis geklont.

Dann habe ich mich per SSH mit meiner Ubuntu-Virtualbox-VM (auf der Docker CE läuft) verbunden und meinen docker-compose build && docker-compose up -dBefehl ausgeführt. Alles hat funktioniert und die Container waren aktiv. Als ich meine Site besuchte, die im Docker-Container läuft, erhielt ich diesen Fehler von Apache:

Verboten. Sie haben keine Berechtigung, auf diesen Server zuzugreifen.

Ich habe also eine interaktive Shell in meinem Container gestartet und es sieht so aus, als ob das Site-Verzeichnis als Root gemountet ist, nicht als www-data. Vielleicht liegt deshalb der Fehler.

Hier sind alle Protokolle meines Vorgangs auf meinem Hostcomputer und Container:https://pastebin.com/raw/M7Jq0CgP

Das ist mein Setup:

Irgendwelche Ideen, warum das Volume nicht als gemountet wird www-data? Oder ist dies mit einem Windows-Hostcomputer + Virtual Box VM + Docker CE nicht möglich?

Antwort1

Ausdie Virtualbox-Dokumente:

[...] werden die Standard-Mount-Optionen verwendet und alle Dateien gehören root. Dies kann durch Hinzufügen einiger Mount-Optionen geändert werden. Optionen werden mit dem Parameter -o übergeben. Sie können mehrere Optionen mit einem Parameter verwenden, trennen Sie die Werte durch Kommas. Weitere Informationen zu den verwendbaren Optionen finden Sie auf der Manpage von mount. Im Benutzerhandbuch werden auch die mit den freigegebenen Ordnern kompatiblen Optionen aufgeführt. Um den SF so zu mounten, dass Sie der Eigentümer der Dateien sind, verwenden Sie diesen Befehl:

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

verwandte Informationen