Том Docker не полностью синхронизирует каталог для одного контейнера - PullRequest
0 голосов
/ 09 февраля 2019

Я создал простой проект для Symfony4, основанный на php7.3 + mariadb через docker-compose.Я использовал Docker для Windows 10 (x64). Он корректно работает на одной машине, но на ноутбуке он не синхронизируется правильно с контейнером.

В корневой папке у меня есть стандартная структура Symfony с файлами Docker, такими как: - / config -/ public - / src .... - / env - / docker - .env - docker-compose.yaml ...

Мои действия в Git Bash для запуска приложения:

  1. docker-compose build
    • работает правильно, все действия были успешно завершены
  2. docker-compose up -d
    • работает правильно, оба контейнеразапустить успешно
  3. docker-compose exec app bash
    • работает правильно, консоль запускается
  4. ls
    • результат docker env
    • он синхронизирует только 2 каталога - docker и env
    • docker dir был синхронизирован не в полном режиме - только структура подкаталогов без файлов

Я пытался определить причину проблемы с синхронизацией файлов, но мне не хватает знанийDGE и опыт работы с Docker.В журналах docker-compose нет ошибок.

Может, кто-нибудь может помочь, как определить причину?Он запускается один раз, но после перезагрузки снова возникает проблема ...

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     

1 Ответ

0 голосов
/ 10 февраля 2019

Я нашел только одно работающее решение - перезапустить диск для Docker: 1. Отключить общий диск, нажмите Применить 2. Включить общий диск, нажмите Применить 3. Перезапустите приложение - файлы были синхронизированы

Но как яДолжны ли обнаруживаться какие-либо проблемы с доступом к диску?Нет ошибок, нет логов ....

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...