J'ai créé un projet simple pour Symfony4 basé sur php7.3+mariadb via docker-compose. J'ai utilisé Docker pour Windows 10 (x64). Cela fonctionne correctement sur une machine mais sur l'ordinateur portable, il ne se synchronise pas correctement avec le conteneur.
Dans le dossier Root, j'ai la structure standard de Symfony avec des fichiers docker comme : - /config - /public - /src .... - /env - /docker - .env - docker-compose.yaml ...
Mes actions dans Git Bash pour démarrer l'application :
- construction de docker-compose
- il fonctionne correctement, toutes les actions ont été terminées avec succès
- docker-compose up -d
- il fonctionne correctement, les deux conteneurs s'exécutent avec succès
- docker-compose exec app bash
- fonctionne correctement, la console démarre
- ls
- le résultat est
docker env
- il ne synchronise que 2 répertoires - docker et env.
- docker dir n'a pas été synchronisé en mode complet - seulement la structure des sous-répertoires sans les fichiers
- le résultat est
J'ai essayé de détecter la raison du problème de synchronisation des fichiers, mais je n'ai pas assez de connaissances et d'expérience avec Docker. Les journaux de docker-compose ne contiennent aucune erreur.
Peut-être que quelqu'un peut aider à détecter la raison ? Il démarre une fois, mais après le redémarrage, le problème se reproduit...
docker-compose.yaml :
version: '3'
services:
app:
restart: unless-stopped
build:
context: .
dockerfile: docker/webserver-apache/Dockerfile
image: php:7.3.1-apache-stretch
volumes:
- "./docker/webserver-apache/sites-enabled:/etc/apache2/sites-enabled:ro"
- "./:/var/www/html"
ports:
- 8080:80
networks:
- dphptrainnet
mariadb:
restart: unless-stopped
image: mariadb:10.4.1
networks:
- dphptrainnet
volumes:
- ./env/mariadb/data:/var/lib/mysql
ports:
- 3306:3306
environment:
MYSQL_ROOT_PASSWORD: ${MYSQL_PASSWORD}
networks:
dphptrainnet:
Dockerfile :
FROM php:7.3.1-apache-stretch
# Setting up constants for an environment
ENV PHP_MEMORY_LIMIT 512M
RUN php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" && \
php composer-setup.php && \
php -r "unlink('composer-setup.php');" && \
mv composer.phar /usr/local/bin/composer
RUN apt-get update && \
apt-get install -y curl vim git zip unzip
# Setting up httpd issues
RUN echo "ServerName localhost" >> /etc/apache2/apache2.conf
RUN a2enmod rewrite headers && /etc/init.d/apache2 restart
RUN echo "127.0.0.1 dockertrain.local" >> /etc/hosts
WORKDIR "/var/www/html"
RUN a2enmod rewrite