J'ai eu du mal à relier deux conteneurs ensemble et on m'a conseillé de commencer à utiliser docker-composer. Je construire le fichier docker-Compose suivant:Comment gérer l'accès en écriture/lecture aux volumes de docker?
version: '2'
services:
db:
image: mysql:latest
volumes:
- "./.data/db:/var/lib/mysql"
restart: always
environment:
MYSQL_ROOT_PASSWORD: my-pass
MYSQL_DATABASE: prestashop
MYSQL_USER: my-shop
MYSQL_PASSWORD: my-pass
prestashop:
depends_on:
- db
image: prestashop/prestashop:latest
volumes:
- "./.data/themes:/var/www/html/themes"
- "./.data/modules:/var/www/html/modules"
- "./.data/override:/var/www/html/override"
links:
- db
ports:
- "10083:80"
restart: always
environment:
DB_SERVER: db
DB_NAME: prestashop
DB_USER: my-shop
DB_PASSWD: my-pass
Cela fonctionne très bien et si je visite la page via un proxy inverse nginx je reçois l'assistant d'installation initiale.
Mais si j'ajoute les volumes de données persistantes:
volumes:
- "./.data/themes:/var/www/html/themes"
- "./.data/modules:/var/www/html/modules"
- "./.data/override:/var/www/html/override"
L'assistant se plaindra beaucoup un accès en lecture/écriture. Pourquoi est-ce? Les volumes internes ont déjà le bon chmod, je suppose? Donc, c'est seulement un problème de synchronisation je pense. Mais j'ai essayé de chmod ou chown les dossiers .data, mais sans aucun succès
J'ai découvert que docker-compose mappe les volumes, mais parce que les dossiers sont créés, ils sont vides. Existe-t-il un moyen de synchroniser les données par défaut de var/www/html sur ma machine hôte? – user3411864