1 votes

Dockeriser une application laravel - obtenir une permission refusée sur le serveur apache

J'essaie de dockeriser mon site Laravel. Je suis sur Windows 10 et la boîte à outils docker ne fonctionne pas très bien pour moi (le chemin relatif ne se monte pas bien).

J'ai donc décidé de configurer un serveur Virtualbox Ubuntu 16.x et d'installer Docker CE dans la VM. Puis j'ai ajouté mon C:\Projects sur ma machine hôte Windows comme un dossier partagé dans ma VM Ubuntu. Ensuite, dans ma VM, j'ai installé les Guest Additions, de sorte que le dossier partagé apparaisse dans ma VM sous le nom de /media/sf_Projects/

Enfin, j'ai ajouté mon compte non-root latheesan au vboxsf en utilisant cette commande : sudo adduser latheesan vboxsf et créé un lien symbolique vers /media/sf_Project a /home/latheesan/Projects (pour un accès facile).

Après avoir redémarré la VM Ubuntu, j'ai pu accéder au contenu du dossier partagé en tant qu'utilisateur latheesan.

Donc, j'ai cloné mon projet sur ma machine hôte dans : C:\Projects\mysite.io dir.

Je me suis ensuite connecté à ma VM Ubuntu virtualbox (qui exécute Docker CE) et j'ai exécuté ma commande docker-compose build && docker-compose up -d commande. Tout a fonctionné et les conteneurs étaient en place. Lorsque j'ai visité mon site fonctionnant dans le conteneur docker, j'ai obtenu cette erreur d'apache :

Interdit Vous n'avez pas la permission d'accéder à / sur ce serveur.

J'ai donc lancé un Shell interactif dans mon conteneur et il semble que le répertoire du site soit monté en tant que root, et non www-data. C'est peut-être la raison de l'erreur.

Voici tous les journaux de mon opération sur ma machine hôte et mon conteneur : https://pastebin.com/raw/M7Jq0CgP

Voici ma configuration :

Une idée de la raison pour laquelle le volume n'est pas monté comme www-data ? ou ce n'est pas possible en utilisant la machine hôte Windows + vm de la boîte virtuelle + docker ce ?

0voto

Desde les documents relatifs à Virtualbox :

[...] les options de montage par défaut sont utilisées et tous les fichiers sont la propriété de root. Ceci peut être modifié en ajoutant des options de montage. Les options sont transmises avec le paramètre -o. Vous pouvez utiliser plusieurs options avec un seul paramètre, en séparant les valeurs par une virgule. Consultez la page de manuel de mount pour plus d'informations sur les options que vous pouvez utiliser. Le manuel de l'utilisateur indique également les options compatibles avec les dossiers partagés. Pour monter le SF afin que vous soyez le propriétaire des fichiers, utilisez cette commande :

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

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X