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 :
-
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
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 ?