我在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上的位置?
答案 0 :(得分:0)
如果要保持主机和容器之间的文件夹同步,则需要mount
而不是coping
:
check this documentation
对于您的问题,您需要从Dockerfile中删除COPY . /var/www/html/
您也可以选中此post.
答案 1 :(得分:0)
所以我把它修好了... 对于其他有相同问题的人,该解决方案是共享您的D驱动器,然后重新启动docker计算机,然后写完整路径,例如,对于在Virtualbox中具有“机器文件夹”名称为D_DRIVE的驱动器D而言。 / D_DRIVE / path / to / desired / folder
谢谢大家的想法。新秀把这个弄错了。