Docker卷不是一个容器的完全同步目录

时间:2019-02-09 15:07:41

标签: docker docker-compose

我已经通过docker-compose为基于php7.3 + mariadb的Symfony4创建了一个简单的项目。我将Docker用于Windows 10(x64) 它在一台机器上可以正常工作,但在笔记本电脑上无法与容器正确同步。

在根文件夹中,我具有带有码头工人文件的标准Symfony结构,例如: -/配置 - /上市 -/ src .... -/ env -/码头工人 -.env -docker-compose.yaml ...

我在Git Bash中启动应用程序的操作:

  1. docker-compose构建
    • 它正常工作,所有动作均成功完成
  2. docker-compose up -d
    • 它正常工作,两个容器都成功运行
  3. docker-compose exec应用bash
    • 工作正常,控制台启动
  4. ls
    • 结果为docker env
    • 它仅同步2个目录-docker和env
    • docker目录未以完整模式同步-仅子目录结构而没有文件

我试图检测出文件同步问题的原因是什么,但是我对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 :(得分:0)

我只找到一种可行的解决方案-为Docker重新共享驱动器: 1.禁用共享磁盘,单击“应用” 2.启用共享磁盘,单击“应用”。 3.重新启动应用程序-文件已同步

但是我应该如何检测驱动器访问方面的任何问题?没有错误,没有日志...