装载的docker工具卷损坏文件

我认为这是机器相关的,但我不确定。 我在Docker 1.10.3 OSX上使用最新的Docker工具箱我有一个使用Dockerfile的项目,它将代码复制到容器中,如下所示:

[...] COPY . /code VOLUME /code WORKDIR /code [...] 

为了更快的本地开发(testing执行),我们将当前目录安装在撰写文件中

 [...] volumes: - .:/code [...] 

并执行

 docker-compose -f docker-compose.yml -f docker-compose.testing.yml run web py.test 

现在,它看起来像我有两个不同的文件夹/文件:当运行容器和用vi查看文件内容时,一切看起来像在主机上。 更改文件并执行我们的testing(pytest,特别是)让python解释器读取垃圾,所以它不能执行testing。

一个文件的结尾看起来像这样(它被复制到Dockerfile到容器中):

 post_save.connect(backup_something, sender=SomeSender, dispatch_uid='backup_something') foobar this obviously raises an error when executing, so I change it to post_save.connect(backup_something, sender=SomeSender, dispatch_uid='backup_something') 

该文件现在看起来很好,无论是从主机和容器内。 执行pytest,它仍然读取复制的代码的内容,为我打破本地testing。

如果我改变的更多,它既不是复制也不是装载的文件,所以东西在随机位置中断:

 File "/code/some_code.py", line 69 dispatch_uid='backup_ ^ 

SyntaxError:扫描string文字时尾巴(尾部显示正确的语法等,没有任何破坏的代码)

我们的设置有什么问题,或者只是我的机器被破坏? 我尝试重新启动并重新创builddocker机器,但这并没有帮助。

我会尝试挂载在只读模式,然后仔细检查文件系统types,如果有什么奇怪的。 几年前有一个ntfs-3g破坏文件的错误,也许是类似的东西(显然不是ntfs,因为我们在OS X上)

我没有在IOS上使用DT的经验,但我想你可能已经做了一个联合安装 。

如果是这样的话,解决scheme将是移动文件或挂载点,以便文件不会被遮蔽。

这篇文章可能是相关的: