Docker不会将文件夹从主机同步到容器

时间:2020-05-07 13:32:35

标签: docker docker-compose dockerfile

我在docker-compose.yml文件上尝试了许多不同的组合。

此行时:

- .:/var/www/html

已更改为:

- *:/var/www/html

然后它将复制工作目录中的文件,但是没有同步。 香港专业教育学院试图用qoutes包围线,将点更改为./,但没有结果。 var / www / html为空或仅在使用*时才包含文件,但没有同步。

这是我的Dockerfile

FROM php:7.3.0-apache

RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer \
    && apt-get update && apt-get install -y git libzip-dev unzip \
    && docker-php-ext-install zip \
    && a2enmod rewrite headers

COPY . /var/www/html/

COPY ./config/vhost.conf /etc/apache2/sites-available/000-default.conf

和docker-compose.yml。

version: '3.4'

services:
    app:
        ports:
            - 80:80
        environment:
            - APACHE_DOCUMENT_ROOT=/var/www/html/app/public
        build:
            context: .
        volumes:
            - .:/var/www/html

编辑: 更新。我试图删除复制行,但只能在容器上创建一个空的html目录。 据我检查的方式,我在runnint容器上执行docker exec -it,然后在html目录上执行ls命令。 到目前为止,我已经重新安装了docker toolbox,并注意到其中包含一个gui ...在执行docker volume ls时,我没有看到任何卷,但是该卷显示在Kitematic中。 但是,主机上的目录不是您所期望的,它不是docker-compose所在的驱动器d上的文件夹,而是我的文档中的文件夹。尝试将其更改为gui上的正确目录,并显示目录无效。我记得在某处读到docker对主机文件系统的访问受限,我想知道我是否没有错过这里的某个步骤,而应该与docker共享整个驱动器D。

编辑2: 将驱动器d上的文件夹添加到名为default的vm到共享文件夹列表中,重新启动全部,但仍然没有骰子。我如何指定驱动器d上的位置?

2 个答案:

答案 0 :(得分:0)

如果要保持主机和容器之间的文件夹同步,则需要mount而不是copingcheck this documentation

对于您的问题,您需要从Dockerfile中删除COPY . /var/www/html/

您也可以选中此post.

答案 1 :(得分:0)

所以我把它修好了... 对于其他有相同问题的人,该解决方案是共享您的D驱动器,然后重新启动docker计算机,然后写完整路径,例如,对于在Virtualbox中具有“机器文件夹”名称为D_DRIVE的驱动器D而言。 / D_DRIVE / path / to / desired / folder

谢谢大家的想法。新秀把这个弄错了。

相关问题